Re: More multi-threading questions...



Hi Justin,

On Tue, 2003-09-02 at 10:55, Justin Schoeman wrote:
> Just when I thought I was getting CORBA/ORBit whipped, it turned vicious 
> on me, and now I am the one that is thouroghly beaten...

	;-)

> The problem I am now seeing is this.  When the CORBA server is 
> multi-threaded AND it performs CORBA client calls (in this case name 
> service bindings), I get errors like:
> 
> ** ERROR **: file giop-connection.c: line 69 (giop_connection_dispose): 
> assertion failed: (cnx->incoming_msg == NULL)

	That's really nasty; if you read
ORBit2/src/orb/GIOP/giop-connection.c's (giop_connection_dispose) and
the two methods above & unwind through link, it looks to me like this
can't happen, but ... clearly something odd is going on.

> ** ERROR **: Failed to write to GIOP wakeup socket -1 0x9(9) (-1)

	That's most odd - it looks like (somehow) a giop_shutdown has happened
in the middle of the code flow;

	What are you doing with ORB_init / shutdowns ? the shutdown logic is
one of the least well tested bits of ORBit2 - since it tends to happen
once only at the end of the process' life.

> or occasionally it works flawlessly.

	Right; we need to aggressively chase this then.

> This problem does not occur if either
> 1) I use a single threaded server;
> 2) I use files to pass IORs, instead of a name service.

	Ok; that's prolly timing related.

> Can anybody give me any advice on this one?

	Sure; I'd be interested to see if the problem persists in the debugger;
and if so - can you put a breakpoint in g_logv, and get stack-traces
from the warnings / assertions (of all threads) [t a a bt], and post
them here.

	Thanks,

		Michael.

-- 
 michael@ximian.com  <><, Pseudo Engineer, itinerant idiot




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]