[omniORB] Unexpected abort coming from omni_thread_wrapper
Antoine Thierry
athierry@alphacent.com
Mon, 28 Jan 2002 16:17:49 +0100
I'm working on a application server running with OmniORB3
first, the client i used for my test is a C++ command line client running
with omniORB too.
I recently got a problem.
i've got 2 base (let's call them base1 and base2) objects which are used as
base servant for my client programs (which get the reference through the IORs
fo this 2 objects)
The problem i got is the following.
call1 : session1 = base1->getSession() (return a handler (session1) on a
session destinated to be used bye the client)
call2 : base1->close(session1) : closed the session.
Until there, everything works, but, after the last call of my client (and it
is not dependant of the number of calls a make), the client ends normally,
but the server aborts. i've noticed too that is depends also of the number of
time a call the client, and of the number of Corba call it's making. but this
is quite random.
My server is multithreaded, so i've decided to debug it, because i didn't
found what bugs.
i've noticed one thing : the aborted is due to a call of the pthread lib
pthread_kill function. which is called the following way :
omni_thread_wrapper -> omni_thread::lock -> omni_mutex::lock -> Unknown
function (x3) -> abort -> raise -> pthread_kill -> __kill
and then .. i got a Segmentation violation.
has anybody got any Id ?
Thanks in advance
Antoine Thierry
ps : i'm going to recompile my OmniORB to try to debug through it
ps2 : for info, i used my own thread specific datas, could it be that ?