[omniORB] omniConnectionBroken (take 2)

ross::barna rbarna@neochi.com
Wed, 11 Jul 2001 10:46:30 -0400 (EDT)


After more debugging it seems that my server operates fine until a client
program terminates (in any way: cleanly, abort or exit) and then the
server says: 

...
omniORB: throw omniConnectionBroken (minor 0) from tcpSocketMTfactory.cc:1076 
Aborted (core dumped)

here is the backtrace from gdb:

...
ll_send: 28 bytes
4749 4f50 0100 0101 1000 0000 0000 0000 GIOP............
0300 0000 0000 0000 0100 0000           ............
omniORB: throw omniConnectionBroken (minor 4) from
tcpSocketMTfactory.cc:1076

Program received signal SIGABRT, Aborted.
[Switching to Thread 4101 (LWP 737)]
0x40d89a21 in __kill () from /lib/libc.so.6
Current language:  auto; currently c
(gdb) bt
#0  0x40d89a21 in __kill () from /lib/libc.so.6
#1  0x401af01e in raise (sig=6) at signals.c:65
#2  0x40d8ae04 in abort () at ../sysdeps/generic/abort.c:88
#3  0x4082e055 in __default_terminate () from /usr/lib/libpf.so.1
#4  0x4082e072 in __terminate () from /usr/lib/libpf.so.1
#5  0x4082e813 in __throw () from /usr/lib/libpf.so.1
#6  0x40144ec6 in omniExHelper::omniConnectionBroken ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#7  0x4014c584 in tcpSocketStrand::ll_recv ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#8  0x40149260 in reliableStreamStrand::fetch ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#9  0x40148f63 in reliableStreamStrand::receive ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#10 0x4013e8c7 in NetBufferedStream::receive ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#11 0x4013e296 in NetBufferedStream::get_char_array ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#12 0x4013446a in GIOP_S::dispatcher ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#13 0x4014d4a9 in tcpSocketWorker::_realRun ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#14 0x40169de4 in omniORB::giopServerThreadWrapper::run ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#15 0x4014d440 in tcpSocketWorker::run ()
   from /home/rbarna/src/eNai/lib/libomniORB3.so.0
#16 0x401998a4 in omni_thread_wrapper ()
   from /home/rbarna/src/eNai/lib/libomnithread.so.2
#17 0x401abdd0 in pthread_start_thread_event (arg=0xbf1ffc00) at
manager.c:274
(gdb) 



Here is what the client did:

ll_recv: 28 bytes
4749 4f50 0100 0101 1000 0000 0000 0000 GIOP............
0300 0000 0000 0000 0100 0000           ............
[eClient]:  construct assigned process ID:      1
omniORB: Preparing to shutdown ORB.
omniORB: scavenger : start.
omniORB: scavenger : exit.
omniORB: strand Ripper: exit.
omniORB: ORB shutdown is complete.
[eClient]:  shutting down
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 1
omniORB: ObjRef(IDL:MapService:1.0) -- deleted.
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 2
omniORB: ObjRef() -- deleted.
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 1
omniORB: ObjRef() -- deleted.


Any idea why this is happening?

-ross