[omniORB] eg3: crash on exit on LynxOS

Nikolai TROFIMOV,PS/CO,72567 Nikolai.Trofimov@cern.ch
Wed, 19 May 1999 13:27:12 +0200


Hello,

I build omniORB for LynxOS 2.5.0 on Motorola 68040 (libaries+examples)
using gcc version 2.7-96q1 configured as cross-compiler on an AIX 4.2
workstation. When I run the eg3 example, the client prints out the echo 
message, but then crashes on exit with Break (core dumped).

Here is the execution trace (all IORs truncated) and back trace from
the core dump.

-------------------------------------------------------------------

> eg3_clt -ORBtraceLevel 20
omniORB2 gateKeeper is not installed. All incoming are accepted.
Rope::incrRefCount: old value = 0
Rope::incrRefCount: old value = outScavenger: start.0
omniORB: Getting initial object reference for NameService from 'IOR:...
Done CORBA::InitialReferences::get().
Rope::incrRefCount: old value = 0
I said,"Hello!". The Object said,"Hello!"
Rope::decrRefCount: old value = 1
omniORB: WARNING - Proxy object not released.
  IR ID   : IDL:omg.org/CosNaming/NamingContext:1.0
  RefCount: 1
  ObjRef  : IOR:...
omniORB: WARNING - Proxy object not released.
  IR ID   : omg.org/CORBA/InitialReferences:1.0
  RefCount: 1
  ObjRef  : IOR:...
omniORB: Initial references:
  Name  : NameService
  IR ID : IDL:omg.org/CosNaming/NamingContext:1.0
  ObjRef: IOR:...
outScavenger: woken by poke()
outScavenger: exit.
Break (core dumped)

------------------------------------------

(gdb) bt
#0  0x169764 in kill ()
#1  0x16979c in raise ()
#2  0x167542 in abort ()
#3  0x16287c in __unwind_function (ptr=0xa8c1e)
#4  0xa8c58 in global constructors keyed to
StrandScavenger::initInScavenger ()
#5  0x1685e6 in exit ()
#6  0x16350c in runmainthread ()

-------------------------------------------

The eg3_impl works fine on Lynx with an AIX client, but if for some
reason (eg, the name server is down) it gets a fatal exception then 
it crashes in the very similar way:

(gdb) bt
#0  0x1695b0 in kill ()
#1  0x1695e8 in raise ()
#2  0x16738e in abort ()
#3  0x1626c8 in __unwind_function (ptr=0x17ba)
#4  0x17f4 in global constructors keyed to Echo_i::echoString ()

I think, it is somehow related to exceptions handling (not thread
safe?).
Everything was compiled with -frtti -fhandle-exceptions -mthreads

Any suggestions?

Thanks in advance,

   Nikolai Trofimov