[omniORB] Exception not caught - omniORB-4.2.0

Prasath_Palaniappan at amat.com Prasath_Palaniappan at amat.com
Tue Nov 5 18:06:08 GMT 2019


Hi Duncan,

Greetings!!!

We are using omniORB-4.2.0 library in our application. Earlier we used gcc-4.2.3 to compile omniORB and our application.
omniORB + application works fine with gcc-4.2.3. But we upgraded the compiler from gcc-4.2.3 to gcc-8.2.0. On both compiler, we compiled omniORB + application with C++11.
But when we run the omniORB + application which is compiled with gcc-8.2.0, omniORB gets crashed because it unable to catch the Exception "CommFailure" and lead into termination.

To discriminate the issue whether does it occur in omniORB or application code, we compiled the call_back example of omniORB with gcc-8.2.0 and tested it.
And observed the same termination on throwing "CommFailure" exception. Log snippet below,
cb_server:
omniORB: (3) 2019-11-04 03:14:00.586194: omniRemoteIdentity deleted.
omniORB: (3) 2019-11-04 03:14:00.586256: ObjRef(IDL:cb/CallBack:1.0) -- deleted.
omniORB: (1) 2019-11-04 03:14:00.625647: SocketCollection idle. Sleeping.
omniORB: (3) 2019-11-04 03:14:00.683793: Error in network receive (start of message): giop:tcp:[::ffff:10.41.46.92]:47079
omniORB: (3) 2019-11-04 03:14:00.684047: throw giopStream::CommFailure from giopStream.cc:808(0,NO,COMM_FAILURE_UnMarshalArguments)
terminate called after throwing an instance of 'omni::giopStream::CommFailure'
IOT/Abort trap (core dumped)
cb_client log:
omniORB: (3) 2019-11-04 03:14:00.589003: Error in network receive (start of message): giop:tcp:[::ffff:10.41.46.92]:47080
omniORB: (0) 2019-11-04 03:14:00.589108: Wait for 1 dedicated thread to finish...
omniORB: (3) 2019-11-04 03:14:00.589286: throw giopStream::CommFailure from giopStream.cc:808(0,NO,COMM_FAILURE_UnMarshalArguments)
terminate called after throwing an instance of 'omni::giopStream::CommFailure'
IOT/Abort trap (core dumped)

Gone through the code and understand that the "CommFailure" exception is get caught properly with the below catch when compiled the code in gcc-4.8.3.
omniORB-4.2.0/src/lib/omniORB/orbcore/GIOP_S.cc
CORBA::Boolean
GIOP_S::dispatcher() {
......
  catch(const giopStream::CommFailure&) {
    // Connection has been closed.
    return 0;
  }
}
Log snippet for the test carried out the code compiled with gcc-4.8.3,
cb_server log:
omniORB: (3) 2019-11-04 05:48:21.746079: omniRemoteIdentity deleted.
omniORB: (3) 2019-11-04 05:48:21.746149: ObjRef(IDL:cb/CallBack:1.0) -- deleted.
omniORB: (3) 2019-11-04 05:48:21.757442: Orderly connection shutdown: giop:tcp:[::ffff:10.41.46.92]:54095
omniORB: (3) 2019-11-04 05:48:21.757519: throw giopStream::CommFailure from giopImpl12.cc:1243(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: (3) 2019-11-04 05:48:21.759081: Server connection giop:tcp:[::ffff:10.41.46.92]:54095 refcount = 1
omniORB: (3) 2019-11-04 05:48:21.759249: Server connection giop:tcp:[::ffff:10.41.46.92]:54095 refcount = 0
omniORB: (3) 2019-11-04 05:48:21.759342: Server close connection from giop:tcp:[::ffff:10.41.46.92]:54095
cb_client log:
omniORB: (3) 2019-11-04 05:48:21.749629: Error in network receive (start of message): giop:tcp:[::ffff:10.41.46.92]:54096
omniORB: (3) 2019-11-04 05:48:21.749833: throw giopStream::CommFailure from giopStream.cc:808(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: (3) 2019-11-04 05:48:21.751635: Server connection giop:tcp:[::ffff:10.41.46.92]:54096 refcount = 1
omniORB: (3) 2019-11-04 05:48:21.751792: removeConnectionAndWorker for dedicated worker. 0 remaining.
omniORB: (3) 2019-11-04 05:48:21.751966: Server connection giop:tcp:[::ffff:10.41.46.92]:54096 refcount = 0

But the exception does not get caught with the catch when compiled omniORB with gcc-8.2.0.
Could you please clarify us the cause for this issue and why ominORB unable to handle the exception if gcc-8.2.0 and also provide your suggestions to fix this issue?

Thanks & Regards,
P. Prasath.

The content of this message is APPLIED MATERIALS CONFIDENTIAL. If you are not the intended recipient, please notify me, delete this email and do not use or distribute this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20191105/657a40e7/attachment.html>


More information about the omniORB-list mailing list