[omniORB] exceptions during up-call to python servant

Luke Deller ldeller at xplantechnology.com
Mon Apr 19 18:46:28 BST 2004


Hi all,

When my servant has a bug and raises a python exception during an 
up-call, omniORBpy prints out a traceback (if the traceLevel is at least 
1) before raising an UNKNOWN exception.  I find this traceback to be 
incredibly useful for tracking down my bug.

However, omniORBpy is much less helpful with unexpected CORBA exceptions.

If my servant causes a CORBA SystemException to be raised (eg by 
performing a problematic CORBA method call), then the SystemException is 
simply propagated.  When there is a deep stack of CORBA method calls, 
the exception is propagated all the way to the top without any traceback 
or log message of any kind to help me find which servant caused the 
problem.  (Is this propagation behaviour dictated by the CORBA spec?)

If my servant causes an unexpected CORBA UserException (eg by failing to 
handle an exception from a CORBA method call), then a message is printed 
before raising an UNKNOWN exception, but still without any traceback.

Would it be feasible to add logging of tracebacks for *all* unexpected 
exceptions in up-calls?

[ It seems to me that it could be implemented in omniORBpy by modifying 
the five pieces of code which call omniPy::produceSystemException so 
that they pass the unexpected exception+traceback to that function, 
which could then log the traceback before producing the SystemException ]

Kind Regards,
Luke.



More information about the omniORB-list mailing list