[omniORB] Detail on omniORBpy segfaults

Duncan Grisby duncan@grisby.org
Sun Sep 22 00:38:01 2002


On Friday 20 September, Julian Satchell wrote:

> omniORB: (4) throw giopStream::CommFailure from
> giopStream.cc:812(0,NO,COMM_FAILURE_UnMarshalArguments)
> ./spider: line 3: 23719 Segmentation fault     

This is a sign that the exception was caught by a thread different to
the one that threw it -- i.e. that the exception handling is not
thread safe. Normally, that happens because gcc or libstdc++ was not
configured with --enable-threads. However, you say that the C++
examples work OK, so it probably isn't that.

What version of gcc are you using?  I think I remember seeing that gcc
3.x requires that the program's main() function is compiled with C++
for exceptions to work properly. If that is the problem, it's very
unfortunate, since it means you'll have to recompile Python's main()
with C++.

FWIW, omniORBpy works fine for me on RedHat 7.x, using gcc 2.96.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan@grisby.org     --
   -- http://www.grisby.org --