Re: ORBit-mt and hangs while acting as a client



Hi Zaheer,

> This seems a very strange problem.  With some code my program sometimes
> hangs only when its using Unix Domain Sockets, when added to slightly it
> hangs when using either IPv4 or Unix Domain Sockets.  I control there by
> .orbitrc in the home directory.  However if I initialise the orb as
> orbit-local-orb as opposed to orbit-local-mt-orb, everything works as
> expected.  I have installed ORBit-0.5.5 and ORBit-mt-0.5.3.
> 
> It happens when calling a CORBA function, in this case
> previking_moduleStart.  So far in my program, no threads have been
> created so it is all running serialised (apart from what ORBit-mt might
> be doing).
> 
> This is what I get when I interrupt a gdb session that is running it:
> 
> (gdb) bt
> #0  0x4010817e in sigsuspend () from /lib/libc.so.6
> #1  0x402361a0 in pthread_setconcurrency () from /lib/libpthread.so.0
> #2  0x40232b20 in pthread_cond_wait () from /lib/libpthread.so.0
> #3  0x40213e54 in g_async_queue_pop_intern_unlocked (queue=0x80527c8,
>      try=0, end_time=0x0) at orbit_thread_support.c:431
> #4  0x40213fb6 in g_async_queue_pop (queue=0x80527c8)
>      at orbit_thread_support.c:464
> #5  0x40212f4c in ORBit_wait_for_request_id (monitor=0x80519b8,
>      request_ids=0xbffff534, block_for_reply=1) at orbit_thread.c:360
> #6  0x40224a37 in giop_connection_wait_for_reply_multiple (
>      connection=0x80519b8, request_ids=0xbffff534, block_for_reply=1)
>      at giop-connection.c:391
> #7  0x40224ab5 in giop_connection_wait_for_reply (connection=0x80519b8,
>      request_id=3221222740, block_for_reply=1) at giop-connection.c:408
> #8  0x4001a23a in previking_moduleHandler_moduleStarted (_obj=0x80518a8,
>      type=previking_SERVICE, name=0x8048867 "test", ev=0xbffff5c8)
>      at previking-stubs.c:64
> #9  0x40019895 in moduleStart (name=0x8048867 "test", orb=0x8049b58)
>      at module.c:47
> #10 0x40019d99 in lpvServiceStart (name=0x8048867 "test",
>      incomingCall=0x8048700 <test>) at lpvservice.c:96
> #11 0x804876b in main (argc=2, argv=0xbffff6a4) at test.c:113
> #12 0x40101cbe in __libc_start_main () from /lib/libc.so.6
> 
> It looks like it is waiting forever on that condition variable in frame
> 2.  At first I thought it is definitely something to do with what I have
> written because I make slight changes and it makes it not hang.  However
> it is interesting to me, that none of the calls to CosNaming functions hang.
> 
> I currently have available to me source code that causes it to hang as
> above with mt when using Unix Domain Sockets only and source code that
> hangs with both Unix Domain Sockets and IPv4.

Please mail the source code to me. I'll have a look. I can't tell from the
backtrace alone, what's happening.

Bye,
Sebastian
-- 
Sebastian Wilhelmi
mailto:wilhelmi ira uka de
http://goethe.ira.uka.de/~wilhelmi




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