Re: OmniORB-4.2.2 compiled with gcc8 and C++14 leads into crash
Duncan Grisby via omniORB-list <[email protected]> Fri, 29 Mar 2019 10:20:03 +0000
| Newsgroups | gmane.comp.corba.omniorb.user |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 2019-03-25 at 06:19 +0000, Prasath via omniORB-list wrote: [...] > But now for project need, we have upgraded the compiler and std > library from “gcc4.8 and C++14” to “gcc8 and C++17”. So that we > compiled the source OmniORB-4.2.2 with “gcc8 and C++17”. [...] > We tested the project (Our Application + OmniORB-4.2.2) which is > completely compiled with “gcc8 and C++17”. But the process got > crashed with terminate caught due to throwing dynamic exception on > communication failure. Something is clearly wrong with your build of it then. [...] > omniORB: Orderly connection shutdown: > giop:tcp:[::ffff:10.41.46.93]:33260 > omniORB: throw giopStream::CommFailure from > giopImpl12.cc:1243(0,NO,COMM_FAILURE_UnMarshalArguments) This is omniORB's normal way of handling a connection being closed. It throws the internal giopStream::CommFailure exception and catches it higher up the call chain. > Terminate caught But this shows that the exception handler didn't trigger. The problem is not in omniORB, but something about the way it was compiled. [...] > Turnoff the exception – We commented out the exception throw code at > line number:512 in “src\lib\omniORB\orbcore\giopStream.cc” > throw CommFailure(minor,status,retry); Clearly that is not the right thing to do. The code throws the exception on purpose. If you break the code by no longer throwing the exception, the server will no longer properly clean up connections. You need to figure out why your build broke the exception handling. You haven't mentioned what platform you are using. Duncan. -- -- Duncan Grisby -- -- [email protected] -- -- http://www.grisby.org -- _______________________________________________ omniORB-list mailing list [email protected] http://www.omniorb-support.com/mailman/listinfo/omniorb-list