[omniORB] eg1 program takes 13 minutes!

Andrew Weaver Andrew.Weaver@tecnomen.fi
Fri, 8 Jun 2001 09:20:53 +0300


I have just installed omniORB 3.0.3 and omniNotify 1.1 beta. I took a full
release and built it on my own platform. X86, gcc version 2.95.2 and all
seemed well.

I then built all the examples and ran eg1. It runs fine except that it
spends over 13 minutes inside the call to orb->destroy()! I ran it with
trace level 50 and the relevent details are...

omniORB: strand Ripper: start.
omniORB: gateKeeper is tcpwrapGK 1.0 - based on tcp_wrappers_7.6
omniORB: scavenger : start.
omniORB: strand Rope::incrRefCount: old value = 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: The omniDynamic library is not linked.
omniORB: Initialising incoming rope factories.
omniORB: strand Rope::incrRefCount: old value = 0
omniORB: Starting incoming rope factories.
omniORB: Activating: root<0>
omniORB: Creating ref to local: root<0>
 target id      : IDL:Echo:1.0
 most derived id: IDL:Echo:1.0
I said, "Hello!".
The Echo object replied, "Hello!".

******* so far, so good, then...

omniORB: Preparing to shutdown ORB.
omniORB: Destroying POA(RootPOA).
omniORB: Deactivating all POA(RootPOA)'s objects.
omniORB: Deactivating: root<0> (has local refs).
omniORB: strand Rope::incrRefCount: old value = 0
omniORB: strand Rope::incrRefCount: old value = 1
omniORB: Waiting for requests to complete on POA(RootPOA).
omniORB: Etherealising POA(RootPOA)'s objects.
omniORB: RefCountServantBase has zero ref count -- deleted.
omniORB: omniLocalIdentity deleted.
omniORB: Stopping incoming rope factories.
omniORB: tcpSocketMTfactory Rendezvouser: start.
omniORB: tcpSocketMTfactory Rendezvouser: waiting on shutdown state to
change to
 NO_THREAD.
omniORB: tcpSocketMTfactory Rendezvouser: waiting on shutdown state to
change to
 NO_THREAD. 


***** The same message is repeated many many times until finally...

omniORB: tcpSocketMTfactory Rendezvouser: exit.
omniORB: tcpSocketMTfactory stopIncoming: tcpSocketMT Rendezvouser has
exited
omniORB: Destruction of POA(RootPOA) complete.
omniORB: Shutting-down incoming rope factories.
omniORB: scavenger : scanning connections
omniORB: scavenger : scanning connections
omniORB: strand Rope::decrRefCount: old value = 1
omniORB: tcpSocketMTfactory removeIncoming: Done
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketIncomingRope: called
omniORB: strand Rope::decrRefCount: old value = 2
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 1
omniORB: ObjRef(omg.org/CORBA/InitialReferences:1.0) -- deleted.
omniORB: scavenger : scanning connections
omniORB: strand Rope_iterator: delete unused Rope.
omniORB: tcpSocketMTfactory ~tcpSocketOutgoingRope: called
omniORB: scavenger : scanning connections
omniORB: scavenger : exit.
omniORB: strand Ripper: exit.
omniORB: ORB shutdown is complete.
omniORB: omniRemoteIdentity deleted.
omniORB: strand Rope::decrRefCount: old value = 1
omniORB: Ref to: root<0> (not activated) -- deleted.
omniORB: Removing dummy entry from object table -- no local refs
omniORB: Dummy omniLocalIdentity deleted (no more local refs).
omniORB: No more references to the ORB -- deleted.

What have I done wrong?

Kind Regards

Andy Weaver