[omniORB] Exception shutting down the orb

Barlow, Simon simon.barlow at Goodrich.com
Tue Mar 7 08:26:22 GMT 2006


Hi,
 
In the project code that we are developing, we send a shutdown command
via a corba interface to shutdown a process. The servant that receives
the shutdown command performs a poa->destroy to stop any more requests
to servants being actioned once the user shutdown request has been
received. This prevents us having to deactivate all the servants
explicitly. Our shutdown processing is then passed of to a different
thread which performs an orb->shutdown.
 
What we are finding is we get an unknown exception generated by the orb
when the orb->Shutdown is invoked. This behaviour is random as most of
the time the code works fine with no errors.
 
The traces beow show a good and bad execution. The traceleevl was set at
10
 
 
Good run
-------------
 
Trace Level 10
 
ORB: (?) Adding root<2> (activating) to object table.
omniORB: (?) Creating ref to local: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/ProcessNotification
Callback:1.0
omniORB: (0) Distribution date: Fri Jan 13 13:47:35 GMT 2006 dgrisby
omniORB: (0) Initialising omniDynamic library.
omniORB: (0) Initialising incoming endpoints.
omniORB: (0) Starting serving incoming endpoints.
omniORB: (1) AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (0) Adding root<0> (activating) to object table.
omniORB: (0) Creating ref to local: root<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/Controller:1.0
omniORB: (0) Adding root<1> (activating) to object table.
omniORB: (0) Creating ref to local: root<1>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/heartbeatmonitor/Heartbeat:1.0
omniORB: (0) Adding root<2> (activating) to object table.
omniORB: (0) Creating ref to local: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/eventloggingfilters/LoggingFilters
:1.0
omniORB: (0) Adding root<3> (activating) to object table.
omniORB: (0) Creating ref to local: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/devices/device/IODevice:1.0
omniORB: (0) Adding root<4> (activating) to object table.
omniORB: (0) Creating ref to local: root<4>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/builtintesting/BuiltInTest:1.0
omniORB: (0) Adding root<5> (activating) to object table.
omniORB: (0) Creating ref to local: root<5>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/filesystemmanagement/FileSystem:1.0
omniORB: (0) Creating ref to remote: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/ProcessNotification
Callback:1.0
omniORB: (0) LocateRequest to remote: root<2>
omniORB: (2) AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: (3) Accepted connection from giop:tcp:192.168.100.81:39555
because of this rule: "* unix,ssl,tcp"
omniORB: (3) Handling a GIOP LOCATE_REQUEST.
omniORB: (?) Creating ref to remote: root<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/Controller:1.0
omniORB: (?) Creating ref to remote: root<1>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/heartbeatmonitor/Heartbeat:1.0
omniORB: (?) Creating ref to remote: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/eventloggingfilters/LoggingFilters
:1.0
omniORB: (?) Creating ref to remote: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/devices/device/IODevice:1.0
omniORB: (?) LocateRequest to remote: root<0>
omniORB: (3) AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: (3) Accepted connection from giop:tcp:192.168.100.81:39556
because of this rule: "* unix,ssl,tcp"
omniORB: (3) Handling a GIOP LOCATE_REQUEST.
 In ManagedProcess::shutdown()
About to call corbahelper shutdownPoa
Prior to poa->destroy
omniORB: (3) Destroying POA(RootPOA).
post poa_->destroy
after call corbahelper shutdownPoa
omniORB: (4) Deactivating all POA(RootPOA)'s objects.
 In ManagedProcess::shutdown() Added command
omniORB: (4) Waiting for requests to complete on POA(RootPOA).
 Leaving ManagedProcess::shutdown()
About to call corbahelper shutdown
Prior to orb->shutdown
omniORB: (4) Requests on POA(RootPOA) completed.
omniORB: (4) Etherealising POA(RootPOA)'s objects.
omniORB: (4) Removing root<5> (etherealising) from object table
omniORB: (4) Removing root<4> (etherealising) from object table
omniORB: (4) Removing root<3> (etherealising) from object table
omniORB: (4) Removing root<2> (etherealising) from object table
omniORB: (4) Removing root<1> (etherealising) from object table
omniORB: (3) Removing root<0> (etherealising) from object table
omniORB: (4) All object adapters inactive. Stopping serving incoming
endpoints.
omniORB: (?) Preparing to shutdown ORB.
omniORB: (4) Destruction of POA(RootPOA) complete.
omniORB: (?) Shutting-down all incoming endpoints.
omniORB: (?) ORB shutdown is complete.
Prior to orb->destroy
omniORB: (?) Deinitialising omniDynamic library.
omniORB: (1) AsyncInvoker: thread id = 1 has exited. Total threads = 3
omniORB: (2) AsyncInvoker: thread id = 2 has exited. Total threads = 3
omniORB: (3) AsyncInvoker: thread id = 3 has exited. Total threads = 3
omniORB: (?) AsyncInvoker: deleted.
After orb->destroy
after call corbahelper shutdown
Logging Shutdown Message
After Logging Shutdown Message
omniORB: (0) Final clean-up completed.
omniORB: (?) Removing root<2> (etherealising) from object table

 
 
Bad run generating exception
------------------------------------------
 
omniORB: (?) Adding root<3> (activating) to object table.
omniORB: (?) Creating ref to local: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/ProcessNotification
Callback:1.0
omniORB: (0) Distribution date: Fri Jan 13 13:47:35 GMT 2006 dgrisby
omniORB: (0) Initialising omniDynamic library.
omniORB: (0) Initialising incoming endpoints.
omniORB: (0) Starting serving incoming endpoints.
omniORB: (1) AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: (0) Adding root<0> (activating) to object table.
omniORB: (0) Creating ref to local: root<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/Controller:1.0
omniORB: (0) Adding root<1> (activating) to object table.
omniORB: (0) Creating ref to local: root<1>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/heartbeatmonitor/Heartbeat:1.0
omniORB: (0) Adding root<2> (activating) to object table.
omniORB: (0) Creating ref to local: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/eventloggingfilters/LoggingFilters
:1.0
omniORB: (0) Adding root<3> (activating) to object table.
omniORB: (0) Creating ref to local: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/devices/device/IODevice:1.0
omniORB: (0) Adding root<4> (activating) to object table.
omniORB: (0) Creating ref to local: root<4>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/builtintesting/BuiltInTest:1.0
omniORB: (0) Adding root<5> (activating) to object table.
omniORB: (0) Creating ref to local: root<5>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/filesystemmanagement/FileSystem:1.0
omniORB: (0) Creating ref to remote: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/ProcessNotification
Callback:1.0
omniORB: (0) LocateRequest to remote: root<3>
omniORB: (2) AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: (3) Accepted connection from giop:tcp:192.168.100.81:39559
because of this rule: "* unix,ssl,tcp"
omniORB: (3) Handling a GIOP LOCATE_REQUEST.
omniORB: (?) Creating ref to remote: root<0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/processcontrol/Controller:1.0
omniORB: (?) Creating ref to remote: root<1>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/heartbeatmonitor/Heartbeat:1.0
omniORB: (?) Creating ref to remote: root<2>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/utilities/interfaces/eventloggingfilters/LoggingFilters
:1.0
omniORB: (?) Creating ref to remote: root<3>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
IDL:com/goodrich/rabit/interfaces/devices/device/IODevice:1.0
omniORB: (?) LocateRequest to remote: root<0>
omniORB: (3) AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: (3) Accepted connection from giop:tcp:192.168.100.81:39560
because of this rule: "* unix,ssl,tcp"
omniORB: (3) Handling a GIOP LOCATE_REQUEST.
 In ManagedProcess::shutdown()
About to call corbahelper shutdownPoa
Prior to poa->destroy
omniORB: (3) Destroying POA(RootPOA).
post poa_->destroy
after call corbahelper shutdownPoa
omniORB: (4) Deactivating all POA(RootPOA)'s objects.
omniORB: (4) Waiting for requests to complete on POA(RootPOA).
 In ManagedProcess::shutdown() Added command
 Leaving ManagedProcess::shutdown()
About to call corbahelper shutdown
Prior to orb->shutdown
omniORB: (?) Preparing to shutdown ORB.
omniORB: (4) Requests on POA(RootPOA) completed.
omniORB: (4) Etherealising POA(RootPOA)'s objects.
omniORB: (4) Removing root<5> (etherealising) from object table
omniORB: (4) Removing root<4> (etherealising) from object table
omniORB: (4) Removing root<3> (etherealising) from object table
omniORB: (4) Removing root<2> (etherealising) from object table
omniORB: (4) Removing root<1> (etherealising) from object table
omniORB: (3) Removing root<0> (etherealising) from object table
omniORB: (?) Assertion failed.  This indicates a bug in the application
using
omniORB, or maybe in omniORB itself.
 file: objectAdapter.cc
 line: 380
 info: num_active_oas == 0
Error In CorbaHelper::shutdownOrb() Caught unknown exception.
Failed to shutdown orb - Exception raised
Logging Shutdown Message
After Logging Shutdown Message
omniORB: (4) All object adapters inactive. Stopping serving incoming
endpoints.
omniORB: (4) Destruction of POA(RootPOA) complete.

CorbaHelper is a wrapper class we developed o isolate our code form the
orb directly. It is this wrapper that catches this exception.
 
 
Thanks in advance
 
Simon

Simon Barlow

GOODRICH

Surveillance & Reconnaissance Systems UK

Malvern Hills Science Park, Geraldine Road

Malvern, Worcestershire, WR14 3SZ

Tel: 01684 585218

email: simon.barlow at goodrich.com <mailto:simon.barlow at goodrich.com> 

 

NOTICE:  This e-mail transmission (and/or the attachments accompanying
it) may contain confidential or proprietary information belonging to
Goodrich Corporation.  The information is only for the use of the
intended recipient.  If you are not the intended recipient you are
hereby notified that any disclosure, copying, distribution or the taking
of any action in reliance on the contents of this information is
strictly prohibited.  Any unauthorized interception of this transmission
is illegal under the law.  If you have received this transmission in
error, please promptly notify the sender by reply e-mail, and then
destroy all copies of the transmission

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20060307/df9b0a33/attachment-0001.htm


More information about the omniORB-list mailing list