[omniORB] ORB::destroy hanging(?) in omniORB 4.0.5

Steve Rowe SRowe at photoworks.com
Tue Mar 15 07:50:15 GMT 2005


Please excuse this long-winded message, but I'm stumped on this one.


I have converted an existing server application from using BOA (and omniORB
4.0.4 at this time) to using POA.  The original code to shutdown (using a
signal handler) the server application seems to work just fine under BOA.
Under POA however, the application does not shut down.  I have put in
logging messages to determine that the call to ORB::shutdown(false) returns
(as expected), but the call to ORB::destroy() does not.  It just seems to
hang.


I read the exchange between Craig Burton and Duncan back in December
regarding ORB::shutdown() hanging and that there was a patch in 4.0.5.  I
installed 4.0.5 today (on RedHat ES 3.0) and ran our server application
hoping this would be resolved.  It wasn't in my case.


One possible issue that may be affecting this is the server application
attempts to determine if another instance is running and if so, invokes a
shutdown procedure.  If there is no old process to send this to, there is an
exception.  

That explains some lines in the first part of the trace file (using
traceLevel=25 and traceThreadId=1), there is a CommFailure near the "Old
services shutdown exception".  I should fix this and determine if there is
an old process, but this code has been working using BOA, just not POA.

Any clues would be appreciated. 


Thanks,


- Steve Rowe


Trace file - 03/10/2005
************************************************************************


omniORB: (0) Initialising incoming endpoints.
omniORB: (0) Bind to address 0.0.0.0.
omniORB: (0) Starting serving incoming endpoints.
Requested 256 pool size
omniORB: (1) AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (1) giopRendezvouser task execute for giop:tcp:192.168.2.50:37066
Initialize Old services shutdown
omniORB: (0) Trying to resolve initial reference `NameService'
 with boot agent:
IOR:01000000240000006f6d672e6f72672f434f5242412f496e697469616c5265666572656e
6365733a312e300001000000000000001c000000010100000a00000070617365727665727800
1a0404000000494e4954
omniORB: (0) Client attempt to connect to giop:tcp:paserverx:1050
omniORB: (2) AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: (2) Scavenger task execute.
omniORB: (0) Client opened connection to giop:tcp:192.168.2.11:1050
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 60 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 120 bytes
omniORB: (0) Creating ref to remote: boa<0x41e2c6bb5a7f14a300000002>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (0) Initial reference `NameService' resolved with boot agent.
omniORB: (0) LocateRequest to remote: boa<0x41e2c6bb5a7f14a300000002>
omniORB: (0) Client attempt to connect to giop:tcp:192.168.2.11:1050
omniORB: (0) Client opened connection to giop:tcp:192.168.2.11:1050
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 32 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 20 bytes
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 105 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 164 bytes
omniORB: (0) Creating ref to remote: root<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:phaBO/Session:1.0
omniORB: (0) LocateRequest to remote: root<0>
omniORB: (0) Client attempt to connect to giop:tcp:192.168.2.50:37060
omniORB: (0) throw giopStream::CommFailure from
giopStream.cc:1073(0,NO,TRANSIENT_ConnectFailed)
Old services shutdown exception
omniORB: (0) Adding root<0> (activating) to object table.
omniORB: (0) State root<0> (activating) -> active
omniORB: (0) Creating ref to local: root<0>
 target id      : IDL:phaBO/Session:1.0
 most derived id: IDL:phaBO/Session:1.0
'IOR:010000001600000049444c3a706861424f2f53657373696f6e3a312e300000000100000
00000000064000000010102000d0000003139322e3136382e322e35300000ca900e000000fe9
4af3042000033390000000000000002000000000000000800000001000000005454410100000
01c00000001000000010001000100000001000105090101000100000009010100'
omniORB: (0) Initial reference `NameService' resolved from -ORBInitRef
argument / ORB registration.
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 92 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 81 bytes
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 80 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 120 bytes
omniORB: (0) Creating ref to remote: boa<0x41e2c6bb5a7f14a300000004>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: (0) LocateRequest to remote: boa<0x41e2c6bb5a7f14a300000004>
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 32 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 20 bytes
omniORB: (0) sendChunk: to giop:tcp:192.168.2.11:1050 228 bytes
omniORB: (0) inputMessage: from giop:tcp:192.168.2.11:1050 24 bytes
omniORB: (0) omniRemoteIdentity deleted.
omniORB: (0) ObjRef(IDL:omg.org/CosNaming/NamingContext:1.0) -- deleted.
omniORB: (0) Adding root<1> (activating) to object table.
omniORB: (0) State root<1> (activating) -> active
omniORB: (0) Creating ref to local: root<1>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:phaBO/ObjectFactory:1.0
omniORB: (0) Adding root<2> (activating) to object table.
omniORB: (0) State root<2> (activating) -> active
omniORB: (0) Creating ref to local: root<2>
 target id      : IDL:omg.org/PortableServer/ServantLocator:1.0
 most derived id: IDL:omg.org/PortableServer/ServantLocator:1.0
omniORB: (0) Adding root<3> (activating) to object table.
omniORB: (0) State root<3> (activating) -> active
omniORB: (0) Creating ref to local: root<3>
 target id      : IDL:omg.org/PortableServer/ServantLocator:1.0
 most derived id: IDL:omg.org/PortableServer/ServantLocator:1.0
omniORB: (0) State root<3> (active) -> deactivating (OA destruction)
omniORB: (0) State root<2> (active) -> deactivating (OA destruction)
omniORB: (0) State root<1> (active) -> deactivating (OA destruction)
omniORB: (0) State root<0> (active) -> deactivating (OA destruction)
omniORB: (0) State root<3> (deactivating OA) -> etherealising
omniORB: (0) State root<2> (deactivating OA) -> etherealising
omniORB: (0) State root<1> (deactivating OA) -> etherealising
omniORB: (0) State root<0> (deactivating OA) -> etherealising
omniORB: (0) Removing root<3> (etherealising) from object table
omniORB: (0) RefCountServantBase has zero ref count -- deleted.
omniORB: (0) Removing root<2> (etherealising) from object table
omniORB: (0) RefCountServantBase has zero ref count -- deleted.
omniORB: (0) Removing root<1> (etherealising) from object table
omniORB: (0) Removing root<0> (etherealising) from object table
omniORB: (0) Destroying POA(RootPOA).
omniORB: (0) Destroying POA(EntityPOA).
omniORB: (0) Deactivating all POA(EntityPOA)'s objects.
omniORB: (0) Waiting for requests to complete on POA(EntityPOA).
omniORB: (0) Requests on POA(EntityPOA) completed.
omniORB: (0) Etherealising POA(EntityPOA)'s objects.
omniORB: (0) Destruction of POA(EntityPOA) complete.
omniORB: (0) Destroying POA(RolePOA).
omniORB: (0) Deactivating all POA(RolePOA)'s objects.
omniORB: (0) Waiting for requests to complete on POA(RolePOA).
omniORB: (0) Requests on POA(RolePOA) completed.
omniORB: (0) Etherealising POA(RolePOA)'s objects.
omniORB: (0) Destruction of POA(RolePOA) complete.
omniORB: (0) Deactivating all POA(RootPOA)'s objects.
omniORB: (0) Waiting for requests to complete on POA(RootPOA).
omniORB: (0) Requests on POA(RootPOA) completed.
omniORB: (0) Etherealising POA(RootPOA)'s objects.
omniORB: (0) Stopping serving incoming endpoints.
omniORB: (0) giopServer waits for completion of rendezvousers and workers
omniORB: (0) giopServer back from waiting.
omniORB: (0) Destruction of POA(RootPOA) complete.
omniORB: (0) Preparing to shutdown ORB.
omniORB: (0) Starting an ORB shutdown thread.
omniORB: (4) ORB shutdown thread started.
omniORB: (0) ORB shutdown already in progress -- waiting.
omniORB: (4) Shutting-down all incoming endpoints.
omniORB: (4) TCP endpoint shut down.
omniORB: (4) Disable ObjRef(IDL:omg.org/PortableServer/ServantLocator:1.0)
root<3>
omniORB: (4) Object table entry root<3> (dead) deleted.
omniORB: (4) Disable ObjRef(IDL:omg.org/PortableServer/ServantLocator:1.0)
root<2>
omniORB: (4) Object table entry root<2> (dead) deleted.
omniORB: (4) Disable ObjRef(IDL:phaBO/ObjectFactory:1.0) root<1>
omniORB: (4) Object table entry root<1> (dead) deleted.
omniORB: (4) Disable ObjRef(IDL:phaBO/Session:1.0) root<0>
omniORB: (4) Object table entry root<0> (dead) deleted.
omniORB: (4) Disable ObjRef(IDL:phaBO/Session:1.0) root<0>
omniORB: (4) omniRemoteIdentity deleted.
omniORB: (4) Disable ObjRef(IDL:omg.org/CosNaming/NamingContext:1.0)
boa<0x41e2c6bb5a7f14a300000002>
omniORB: (4) omniRemoteIdentity deleted.
omniORB: (4) Disable ObjRef(omg.org/CORBA/InitialReferences:1.0) key<INIT>
omniORB: (4) omniRemoteIdentity deleted.
omniORB: (4) 7 object references present at ORB shutdown.
omniORB: (4) ORB shutdown is complete.
omniORB: (0) ORB shutdown complete -- finished waiting.
omniORB: (0) ObjRef(IDL:omg.org/CosNaming/NamingContext:1.0) -- deleted.
omniORB: (0) ObjRef(omg.org/CORBA/InitialReferences:1.0) -- deleted.
omniORB: (0) Deinitialising omniDynamic library.
omniORB: (0) Client connection refcount (forced) = 0
omniORB: (0) Client close connection to giop:tcp:192.168.2.11:1050
omniORB: (0) Client connection refcount (forced) = 0
omniORB: (0) Client close connection to giop:tcp:192.168.2.11:1050
omniORB: (0) 0 remaining bidir ropes deleted.
omniORB: (0) 2 remaining ropes deleted.
omniORB: (0) Clear endPoint options.
omniORB: (0) Wait for ORB invoker threads to finish.
omniORB: (1) AsyncInvoker: thread id = 1 has exited. Total threads = 2
omniORB: (2) AsyncInvoker: thread id = 2 has exited. Total threads = 1


*****************************
end of trace file....

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20050315/01adadfd/attachment.htm


More information about the omniORB-list mailing list