[omniORB] application crashes during ORB shutdown

Serguei Kolos Serguei.Kolos at cern.ch
Wed Jan 28 12:31:53 GMT 2004


Hello

I have encountered a strange problem while doing shutdown
at the end of my CORBA application. My program crashes with
segmentation fault, but not in the main thread (where the shutdown
is called) but in the other thread. The stacks for the crashed and
main threads are shown at the end of the message.
If I don't call the shutdown method I don't have this problem.
With the call to shutdown the problem is easily reproducible.

I'll be very glad for any hint.

I'm using omniORB 4.0.2 on RedHat 7.3 with gcc2.95.2

this is stack of the faulty thread:

#0  0x4031cfe9 in bad_exception type_info function ()
   from 
/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/../external/i686-rh73-gcc295-dbg/lib/libstdc++-libc6.2-2.so.3
#1  0x4031d111 in bad_exception type_info function ()
   from 
/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/../external/i686-rh73-gcc295-dbg/lib/libstdc++-libc6.2-2.so.3
#2  0x4031d19d in bad_exception type_info function ()
   from 
/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/../external/i686-rh73-gcc295-dbg/lib/libstdc++-libc6.2-2.so.3
#3  0x4031d8c7 in __frame_state_for ()
   from 
/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/../external/i686-rh73-gcc295-dbg/lib/libstdc++-libc6.2-2.so.3
#4  0x4031c05f in __throw ()
   from 
/afs/cern.ch/atlas/project/tdaq/cmt/nightly/installed/../external/i686-rh73-gcc295-dbg/lib/libstdc++-libc6.2-2.so.3
#5  0x40160c73 in omni::giopStream::CommFailure::_raise 
(minor=1096024068, status=COMPLETED_NO, retry=false,
    filename=0x401fa8c0 "../src/lib/omniORB/orbcore/giopStream.cc", 
linenumber=828) at ../src/lib/omniORB/orbcore/giopStream.cc:535
#6  0x401615de in omni::giopStream::errorOnReceive (this=0x80897dc, rc=-1,
    filename=0x401fa8c0 "../src/lib/omniORB/orbcore/giopStream.cc", 
lineno=828, buf=0x80898f0, heldlock=false)
    at ../src/lib/omniORB/orbcore/giopStream.cc:735
#7  0x40161935 in omni::giopStream::inputMessage (this=0x80897dc) at 
../src/lib/omniORB/orbcore/giopStream.cc:828
#8  0x4014f312 in omni::giopImpl12::inputNewServerMessage (g=0x80897dc) 
at ../src/lib/omniORB/orbcore/giopImpl12.cc:462
#9  0x4014fb2c in omni::giopImpl12::inputMessageBegin (g=0x80897dc,
    unmarshalHeader=0x401503e8 
<omni::giopImpl12::unmarshalWildCardRequestHeader(omni::giopStream *)>)
    at ../src/lib/omniORB/orbcore/giopImpl12.cc:667
#10 0x4015a165 in omni::GIOP_S::dispatcher (this=0x80897d8) at 
../src/lib/omniORB/orbcore/GIOP_S.cc:217
#11 0x40163c4a in omni::giopWorker::real_execute (this=0x8089450) at 
../src/lib/omniORB/orbcore/giopWorker.cc:215
#12 0x4016352c in omni::giopWorkerInfo::run (this=0x40b6a9d8) at 
../src/lib/omniORB/orbcore/giopWorker.cc:103
#13 0x40163626 in omni::giopWorker::execute (this=0x8089450) at 
../src/lib/omniORB/orbcore/giopWorker.cc:117
#14 0x401d8138 in omniAsyncWorker::real_run (this=0x8089478) at 
../src/lib/omniORB/orbcore/invoker.cc:185
#15 0x4016979c in omniAsyncWorkerInfo::run (this=0x40b6aa98) at 
../src/lib/omniORB/orbcore/invoker.cc:232
#16 0x401d848a in omniAsyncWorker::run (this=0x8089478) at 
../src/lib/omniORB/orbcore/invoker.cc:136
#17 0x4029e991 in omni_thread_wrapper (ptr=0x8089478) at 
../src/lib/omnithread/posix.cc:422
#18 0x4035bfaf in pthread_start_thread () from /lib/i686/libpthread.so.0


this is stack of the main thread (which performs shutdown):

#0  0x420293d5 in sigsuspend () from /lib/i686/libc.so.6
#1  0x4035e609 in __pthread_wait_for_restart_signal () from 
/lib/i686/libpthread.so.0
#2  0x4035aeec in pthread_cond_wait () from /lib/i686/libpthread.so.0
#3  0x4029deae in omni_condition::wait (this=0x807ab28) at 
../src/lib/omnithread/posix.cc:134
#4  0x40157bef in omni::giopServer::deactivate (this=0x807aaf0) at 
../src/lib/omniORB/orbcore/giopServer.cc:527
#5  0x40157039 in omni::giopServer::stop (this=0x807aaf0) at 
../src/lib/omniORB/orbcore/giopServer.cc:320
#6  0x4017f457 in omni::omniObjAdapter::adapterInactive (this=0x807b234) 
at ../src/lib/omniORB/orbcore/objectAdapter.cc:434
#7  0x4019c8f0 in omni::omniOrbPOA::do_destroy (this=0x807b228, 
etherealize_objects=true) at ../src/lib/omniORB/orbcore/poa.cc:2191
#8  0x40195018 in omni::omniOrbPOA::destroy (this=0x807b228, 
etherealize_objects=true, wait_for_completion=true)
    at ../src/lib/omniORB/orbcore/poa.cc:777
#9  0x401a347a in omni::omniOrbPOA::shutdown () at 
../src/lib/omniORB/orbcore/poa.cc:3922
#10 0x401258bb in omniOrbORB::actual_shutdown (this=0x807aad0) at 
../src/lib/omniORB/orbcore/corbaOrb.cc:985
#11 0x40125aec in omniOrbORB::do_shutdown (this=0x807aad0, 
wait_for_completion=true) at ../src/lib/omniORB/orbcore/corbaOrb.cc:1047
#12 0x40125028 in omniOrbORB::shutdown (this=0x807aad0, 
wait_for_completion=true) at ../src/lib/omniORB/orbcore/corbaOrb.cc:842
#13 0x4003c1b0 in IPCCore::shutdown () at ../src/core.cc:269
#14 0x08056bcb in main (argc=5, argv=0xbfffbfa8) at 
../test/test_client.cc:380
#15 0x42017589 in __libc_start_main () from /lib/i686/libc.so.6






More information about the omniORB-list mailing list