[omniORB] Internal seg fault

Mike Ladwig mike@twinpeaks.prc.com
Tue, 01 May 2001 09:09:41 -0400


Hello!

All of my clients crash with a segfault in omni libraries whenever the 
server they are attempting to contact is down.  The client gets the 
objref from NameService, and the problem occurs on the first use of that 
ref.  When the servers are up, things seem to work.

I'm converting a codebase from OMNI 2.7 BOA to OMNI 3.03 POA on RH 
Linux, and probably have messed something up, but not getting an 
exception (the failing call is in a try {} catch (...) {} block) is 
troubling.

Anybody got any ideas?

Thanks,
mike.


A gdb trace is:

#0  0x0 in ?? ()
#1  0x4003df48 in __user_type_info::dyncast (this=0x40048cac, boff=0,
   target=@0x40048d14, objptr=0x4065aed8, subtype=@0x40048ca4,
   subptr=0x4065aed8)
  from /home/mike/workspace/sage/lib/Linux_i686/libsageAbstract.so
#2  0x4003f9f3 in __dynamic_cast_2 (
   from=0x40a278a8 <__user_type_info type_info function>,
   to=0x40042200 <__pointer_type_info type_info function>, boff=0,
   address=0x4065aed8, sub=0x40a27aac <type_info type_info function>,
   subptr=0x4065aed8)
  from /home/mike/workspace/sage/lib/Linux_i686/libsageAbstract.so
#3  0x4003f7b3 in __is_pointer (p=0x4065aed8)
  from /home/mike/workspace/sage/lib/Linux_i686/libsageAbstract.so
#4  0x4003ee06 in __cp_pop_exception (p=0x8110f88)
  from /home/mike/workspace/sage/lib/Linux_i686/libsageAbstract.so
#5  0x405cceb5 in omniRemoteIdentity::locateRequest ()
  from /usr/lib/libomniORB3.so.0
#6  0x405cb591 in omniObjRef::_locateRequest () from 
/usr/lib/libomniORB3.so.0
#7  0x405ca48e in omniObjRef::_assertExistsAndTypeVerified ()
  from /usr/lib/libomniORB3.so.0
#8  0x405caed8 in omniObjRef::_invoke () from /usr/lib/libomniORB3.so.0
#9  0x40052261 in _objref_TimeServer::GetTime (this=0x8109070)
   at Linux_i686/TimeServerSK.cc:280
#10 0x80777fb in EStreamManager::getCurrentTime (this=0x80fd6a8)
   at eso_mgr.cc:169
#11 0x807c56e in EExplorer::initTimer (this=0x80fd640) at eexplore.cc:334
#12 0x807ab63 in EExplorer::Run (this=0x80fd640) at eexplore.cc:116
#13 0x8061d8c in main (argc=1, argv=0xbffff87c) at main.cc:80
#14 0x408efb5c in __libc_start_main (main=0x8061ad8 <main>, argc=2,
   ubp_av=0xbffff87c, init=0x805ef90 <_init>, fini=0x8099288 <_fini>,
   rtld_fini=0x4000d634 <_dl_fini>, stack_end=0xbffff874)
   at ../sysdeps/generic/libc-start.c:129

and the program run with ORBtraceLevel at 20 is:

[mike@ci EventExplorer]$ ./EventExplorer Demo_Security -ORBtraceLevel 20
omniORB: strand Ripper: start.
omniORB: scavenger : start.
omniORB: gateKeeper is not installed. All incoming are accepted.
omniORB: Initialising omniDynamic library.
omniORB: strand Rope::incrRefCount: old value = 0
omniORB: Creating ref to remote: key<0x4e616d6553657276696365>
target id      : IDL:omg.org/CORBA/Object:1.0
most derived id:
omniORB: Initial reference `NameService' resolved from configuration file.
omniORB: strand Rope::incrRefCount: old value = 1
omniORB: Creating ref to remote: key<0x4e616d6553657276696365>
target id      : IDL:omg.org/CosNaming/NamingContext:1.0
most derived id:
omniORB: strand Rope::incrRefCount: old value = 0
omniORB: Creating ref to remote: root/<33554432>
target id      : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:omg.org/CosNaming/NamingContextExt:1.0
omniORB: LocateRequest to remote: root/<33554432>
Segmentation fault