[omniORB] SIGSEGV on deffered request.
Duncan Grisby
duncan@grisby.org
Fri Nov 8 14:38:01 2002
On Wednesday 6 November, Vasily Tchekalkin wrote:
> I developing project based on omniORB 4. In this project heavily used
> CORBA deffered request. And under high load I've got SIGSEGV in
> omni::omni_RequestImpl_callDesc::marshalArguments.
Very odd. Something somewhere must be corrupting the stack. If you
look at the code at step 5 in your trace, you'll see that just before
the call to omniObjRef::_invoke(), the call descriptor object is
created on the stack, passing the this pointer. The call descriptor
constructor sets pd_impl to that value. The backtrace shows that the
this pointer is not null, so somewhere along the line the pd_impl
member has been corrupted. The other members of the call descriptor
are invalid too.
I don't really know what to suggest to help track this down. You might
try using a memory tracking tool like Purify or valgrind, but those
tools don't tend to notice stack errors, only heap ones. You might be
lucky and find that the corruption hits invalid / heap memory too.
Cheers,
Duncan.
--
-- Duncan Grisby --
-- duncan@grisby.org --
-- http://www.grisby.org --