[omniORB] obtaining reference to object fails

henning.schmidt@philips.com henning.schmidt@philips.com
Fri, 30 Mar 2001 18:10:48 -0600


I have a simple omniORB program that does the following:

   {
      // ... shortly after entering into main()
      // especially: no other threads created up to here and no calls t=
o the omniORB libs made yet

      CORBA::ORB_var myOrb =3D CORBA::ORB_init(argc, argv, "omniORB3");=

      CORBA::Object_var obj =3D myOrb->resolve_initial_references("Root=
POA");
      PortableServer::POA_var poa =3D PortableServer::POA::_narrow(obj)=
;
     =20
      Dummy_impl *pDummy_impl =3D new Dummy_impl();
      PortableServer::ObjectId_var myDummyid =3D poa->activate_object(p=
Dummy_impl);
     =20
      obj =3D pDummy_impl->_this();  // abort from this line

      // never get here ...
   }

when I run it as=20
      % a.out -ORBtraceLevel 25
I receive the following messages: (Of course it does abort with the sam=
e exception wehn being started without the -ORBtranseLevel argument)
      omniORB: gateKeeper is not installed. All incoming are accepted.
      omniORB: strand Ripper: start.
      omniORB: scavenger : start.
      omniORB: strand Rope::incrRefCount: old value =3D 0
      omniORB: Creating ref to remote: key<0x494e4954>
       target id      : IDL:omg.org/CORBA/Object:1.0
       most derived id: omg.org/CORBA/InitialReferences:1.0
      omniORB: Initialising omniDynamic library.
      omniORB: Initialising incoming rope factories.
      omniORB: strand Rope::incrRefCount: old value =3D 0
      omniORB: Starting incoming rope factories.
      omniORB: Activating: root<0>
      omniORB: Assertion failed.  This indicates a bug in the applicati=
on using
      omniORB, or maybe in omniORB itself. e.g. using the ORB after it =
has
      been shut down.
       file: ../omniInternal.cc
       line: 747
       info: pof
      omniORB: tcpSocketMTfactory Rendezvouser: start.
      omniORB: tcpSocketMTfactory Rendezvouser: block on accept()
      Abort (core dumped)
      %

The call stack in the dumped core begins at the indicated line ( pDummy=
_impl->_this() )
Do you have any hint as to what could be going wrong.

I have to mention that this is running in the program that has linked t=
he omni-libs statically as described in my other (large) message about =
the "segmentation violation at startup". Maybe it has something to do w=
ith that and my workaround (that I=20
describe there) does not really solve that other problem. In this case =
it would propably mean that the omnithread library is not initialized c=
orrectly ... ??

I would appreciate if you could spend some thoughts on this. This is a =
severe stumbling stone for me ...
Thanks a lot
;Henning


BTW this is omniORB303 running on SGI IRIX 6.5.10

--
H. Henning Schmidt     <Henning.Schmidt@Philips.com>
Philips Broadcast / Film Imaging Products
phone: +1 (408) 617 5751
fax:        +1 (408) 617 7713
http://www.broadcast.philips.com/Web/FProductType.asp?lNodeId=3D282
=