[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