[omniORB] Sun solaris crash

Duncan Grisby dgrisby@uk.research.att.com
Mon, 11 Dec 2000 15:26:29 +0000


On Friday 8 December, "Aeilt Zemering" wrote:

> I am having a problem with a C++ server with embedded python. It
> crashes with either a segmentation violation or a bus error.
>
> I am using omniORB3.02 and omniORBPython1.2 on Sun Solaris 2.5

What are you doing at the time of the crash?  Combined C++/Python
programs work OK for me, but I've only tried relatively simple tests.

It looks like it's crashing as it tries to create a Python object
reference in string_to_object.

I'm not sure I believe your stack trace:

> Current function is omniAnonObjRef::~omniAnonObjRef (optimized)
>    66   omniAnonObjRef::~omniAnonObjRef() {}
> (dbx)   [1] _lwp_kill(0x0, 0xb, 0x0, 0x13d407, 0x0, 0x13d405), at 0xef17898c
>   [2] __libthread_segvhdlr(0xb, 0xefffd848, 0xefffd688, 0xefffd5c8,
> 0x13d410, 0x
> 13d440), at 0xef2232fc
>   ---- called from signal handler with signal 11 (SIGSEGV) ------
>   [3] MT::LockImpl::lock(), at 0xef491f9c
>   [4] CORBA::Object::~Object(0x32c560, 0x0, 0x32c53c, 0xee7ed324,
> 0xefffd8e8, 0x
> ef1d3848), at 0xef41f878
> =>[5] omniAnonObjRef::~omniAnonObjRef(this = ???, delete = ???) (optimized),
> at
> 0xee794d80 (line ~66) in "anonObject.cc"

The ~omniAnonObjRef() call is meant to happen, followed by ~Object(),
but what is the MT::LockImpl::lock() thing?  That's nothing to do with
omniORB, so I presume it's part of your program. How the debugger came
to think ~Object() called it, I don't know.

I suggest you build omniORB and omniORBpy with debugging enabled, then
run your program inside dbx, rather than looking at a core file.

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --