[omniORB] HELP..!!!!client Request hangs on the server (seems to be deadloc ked) running as a task on PowerPC

Sheshi Sankineni Sheshi.Sankineni@cosinecom.com
Tue Aug 13 19:58:01 2002


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C242FB.72B27E00
Content-Type: text/plain;
	charset="iso-8859-1"

Hi All, 
I downloaded omniORB4 and compiled with gcc 2.95.2 cross compiler on
Redhat6.2 Linux for PowerPC Linux (yellow dog)
When I run the echo example (which was also compiled using the same cross
compiler) on PowerPC, everything works. I was able to communicate with the
server.
However, when I run the ORB servant inside my application as a task, client
request seems to be hanging forever. On Dumping the stacktrace of the
threads, looks like a deadlock. Can someone look at the stacktraces and let
me know whats going on. Your help is greatly appreciated.
Trace from OmniORB server after the request has been made 

Connection giop:tcp:172.20.16.142:32013, per giop:tcp:172.20.28.22:3449
[New Thread 107626 (LWP 17648)]
omniORB: Server accepted connection from giop:tcp:172.20.28.22:3449
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 2
[New Thread 108651 (LWP 17649)]
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: Accepted connection from giop:tcp:172.20.28.22:3449 because of this
rule: "* bidir,unix,tcp,ssl"
omniORB: inputMessage: from giop:tcp:172.20.28.22:3449 101 bytes
4749 4f50 0100 0100 5900 0000 0000 0000 GIOP....Y.......
0100 0000 0100 0000 1f00 0000 ff6d 7950 .............myP
6f61 0063 6c69 7365 7373 696f 6e6d 616e oa.clisessionman
6167 6572 5365 7276 6963 6500 0b00 0000 agerService.....
6765 7453 6573 7369 6f6e 0000 0000 0000 getSession......
0500 0000 726f 6f74 0000 0000 0500 0000 ....root........
726f 6f74 00                            root.
omniORB: Dispatching remote call 'getSession' to:
root/myPoa<clisessionmanagerService> (active)

Server hangs after this call

Here is the stack trace of the threads from gdb

(gdb) thread 108
[Switching to thread 108 (Thread 108651 (LWP 17649))]#0  0x09bc70b8 in
__syscall_rt_sigsuspend () at soinit.c:64
64      in soinit.c
(gdb) bt
#0  0x09bc70b8 in __syscall_rt_sigsuspend () at soinit.c:64
#1  0x09bc5da8 in __sigsuspend (set=0xfffffffc)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:45
#2  0x0a378c50 in __pthread_wait_for_restart_signal (self=0x725ffc00) at
pthread.c:926
#3  0x0a374ea8 in pthread_cond_wait (cond=0x0, mutex=0x302080f8) at
restart.h:34
#4  0x09d22c48 in omni_condition::wait (this=0x30208110) at posix.cc:136
#5  0x0a1b0c7c in omni_tracedmutex::lock (this=0x302080f8) at
tracedthread.cc:179
#6  0x0a2418d8 in omni_tracedmutex_lock::omni_tracedmutex_lock
(this=0x725febb8, 
    m=@0x302080f8) at ../../../../include/omniORB4/tracedthread.h:149
#7  0x0a1d92fc in omni::giopServer::notifyWkPreUpCall (this=0x302080d8,
w=0x167ca360, 
    data_in_buffer=false) at giopServer.cc:1022
#8  0x0a1e1728 in omni::GIOP_S::ReceiveRequest (this=0x167ca498,
desc=@0x725fef18)
    at GIOP_S.cc:591
#9  0x0a1adfe0 in omniCallHandle::upcall (this=0x725ff0b8,
servant=0x30278070, 
    desc=@0x725fef18) at callHandle.cc:142
#10 0x0b521e14 in cosinecom::agent::_impl_DirectorySessionManager::_dispatch
()
   from ./orion/cosine/agent_cli/libS_agent_cli_generated.so
#11 0x0a1866b0 in omni::omniOrbPOA::dispatch (this=0x30209668,
handle=@0x725ff0b8, 
    id=0x30279540) at poa.cc:1656
#12 0x0a157794 in omniLocalIdentity::dispatch (this=0x30279540,
handle=@0x725ff0b8)
    at localIdentity.cc:202
#13 0x0a1df88c in omni::GIOP_S::handleRequest (this=0x167ca498) at
GIOP_S.cc:299
#14 0x0a1ded48 in omni::GIOP_S::dispatcher (this=0x167ca498) at
GIOP_S.cc:226
#15 0x0a1da964 in omni::giopWorker::execute (this=0x167ca360) at
giopWorker.cc:173
#16 0x0a256528 in omniAsyncWorker::run (this=0x167ca388) at invoker.cc:152
#17 0x09d247d4 in omni_thread_wrapper (ptr=0x167ca388) at posix.cc:425
#18 0x0a375e84 in pthread_start_thread (arg=0xfffffffc) at manager.c:274
#19 0x0a375ec8 in pthread_start_thread_event (arg=0x725ffc00) at
manager.c:297
#20 0x09c6111c in clone () at soinit.c:64

(gdb) thread 107
[Switching to thread 107 (Thread 107626 (LWP 17648))]#0  0x09c3b3f0 in
nanosleep ()
    at soinit.c:64
64      in soinit.c
(gdb) bt
#0  0x09c3b3f0 in nanosleep () at soinit.c:64
#1  0x0a378dbc in __pthread_timedsuspend_new (self=0x727ffc00,
abstime=0x727ff420)
    at pthread.c:1066
#2  0x0a37515c in pthread_cond_timedwait_relative (cond=0x30208098,
mutex=0x30208050, 
    abstime=0x727ff420) at restart.h:45
#3  0x0a3752e8 in pthread_cond_timedwait (cond=0x4, mutex=0x0,
abstime=0x727ff198)
    at condvar.c:234
#4  0x09d22ef8 in omni_condition::timedwait (this=0x30208094,
secs=946713641, 
    nanosecs=363534000) at posix.cc:145
#5  0x0a1b2e54 in omni_tracedcondition::timedwait (this=0x30208090,
secs=946713641, 
    nanosecs=363534000) at tracedthread.cc:389
#6  0x0a1cdcf4 in omni::Scavenger::execute (this=0x1668ed70) at
giopStrand.cc:641
#7  0x0a256528 in omniAsyncWorker::run (this=0x167ca238) at invoker.cc:152
#8  0x09d247d4 in omni_thread_wrapper (ptr=0x167ca238) at posix.cc:425
#9  0x0a375e84 in pthread_start_thread (arg=0x4) at manager.c:274
#10 0x0a375ec8 in pthread_start_thread_event (arg=0x727ffc00) at
manager.c:297
#11 0x09c6111c in clone () at soinit.c:64

(gdb) thread 106
[Switching to thread 106 (Thread 106601 (LWP 17647))]#0  0x09c5aea0 in
select ()
    at soinit.c:64
64      in soinit.c
(gdb) bt
#0  0x09c5aea0 in select () at soinit.c:64
#1  0x0a1f983c in omni::do_select (maxfd=13, r=0x729ff398, w=0x0, e=0x0,
t=0x729ff388)
    at SocketCollection.cc:218
#2  0x0a1f9b34 in omni::SocketCollection::Select (this=0x302089ec)
    at SocketCollection.cc:271
#3  0x0a235e90 in omni::tcpEndpoint::AcceptAndMonitor (this=0x302089e8, 
    func=0xa1dac7c <omni::giopRendezvouser::notifyReadable(void *,
omni::giopConnection *)>, cookie=0x302094c0) at ./tcp/tcpEndpoint.cc:337
#4  0x0a1dae54 in omni::giopRendezvouser::execute (this=0x302094c0)
    at giopRendezvouser.cc:73
#5  0x0a256528 in omniAsyncWorker::run (this=0x302094e8) at invoker.cc:152
#6  0x09d247d4 in omni_thread_wrapper (ptr=0x302094e8) at posix.cc:425
#7  0x0a375e84 in pthread_start_thread (arg=0x4) at manager.c:274
#8  0x0a375ec8 in pthread_start_thread_event (arg=0x729ffc00) at
manager.c:297
#9  0x09c6111c in clone () at soinit.c:64

(gdb) thread 105
[Switching to thread 105 (Thread 105576 (LWP 17644))]#0  0x09bc70b8 in
__syscall_rt_sigsuspend () at soinit.c:64
64      in soinit.c
(gdb) bt
#0  0x09bc70b8 in __syscall_rt_sigsuspend () at soinit.c:64
#1  0x09bc5da8 in __sigsuspend (set=0xfffffffc)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:45
#2  0x0a378c50 in __pthread_wait_for_restart_signal (self=0x72bffc00) at
pthread.c:926
#3  0x0a374ea8 in pthread_cond_wait (cond=0x0, mutex=0xa2e53f4) at
restart.h:34
#4  0x09d22c48 in omni_condition::wait (this=0xa2e5430) at posix.cc:136
#5  0x0a1b26f8 in omni_tracedcondition::wait (this=0xa2e542c) at
tracedthread.cc:342
#6  0x0a10d150 in omniOrbORB::run (this=0x30207f58) at corbaOrb.cc:775
#7  0x0a445d8c in init_orb () from
./orion/cosine/agent_cli/libS_ctl_nh_agent_cli.so
#8  0x1053f6dc in orb_task () at /vobs/orion/os/linux/main.c:286
#9  0x105de1cc in __os_tasks_func_entry_point__ (_xx=0x167a2040)
    at /vobs/orion/boot/osdeps/linux/src/task.c:385
#10 0x0a375e84 in pthread_start_thread (arg=0xfffffffc) at manager.c:274
#11 0x0a375ec8 in pthread_start_thread_event (arg=0x72bffc00) at
manager.c:297
#12 0x09c6111c in clone () at soinit.c:64

thread 105 is the thread in which the ORBServer is running as as task.

In the beginning I ran into SIGSEGV when trying to resolve the RootPoa. I
was getting SIGSEGV consistently in the omni_tracedmutex::lock()during
initialization of the ORB.

What I noticed was in that method, there is a local variable sync declared
as follows

omni_mutex_lock sync(pd_lock);

I changed this to a heap variable as follows

omni_mutex_lock* sync = new omni_mutex_lock(pd_lock); // sheshi

after that the SIGSEGV went away. I still dont know what is reason for this.
Now, when I make the call (its a python client using FnORB), server seems to
be hung. (stack traces from the gdb is above).

Please, please I would really really appreciate if someone can help me
identify the problem.

thanks in advance

-sheshi

------_=_NextPart_001_01C242FB.72B27E00
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Diso-8859-1">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
5.5.2653.12">
<TITLE>HELP..!!!!client Request hangs on the server (seems to be =
deadlocked) running as a task on PowerPC</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2 FACE=3D"Courier New">Hi All,</FONT><FONT =
FACE=3D"Times New Roman"> </FONT>
<BR><FONT SIZE=3D2 FACE=3D"Courier New">I downloaded omniORB4 and =
compiled with gcc 2.95.2 cross compiler on<B> Redhat6.2 Linux</B> =
for<B> PowerPC Linux (yellow dog)</B></FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Arial">When I run the echo =
example (which was also compiled using the same cross compiler) on =
PowerPC, everything works. I was able to communicate with the =
server.</FONT></P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">However, when =
I run the ORB servant inside my application as a task, client request =
seems to be hanging forever. On Dumping the stacktrace of the threads, =
looks like a deadlock. Can someone look at the stacktraces and let me =
know whats going on. Your help is greatly appreciated.</FONT></P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">Trace from =
OmniORB server after the request has been made </FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">Connection =
giop:tcp:172.20.16.142:32013, per giop:tcp:172.20.28.22:3449</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[New Thread =
107626 (LWP 17648)]</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
Server accepted connection from giop:tcp:172.20.28.22:3449</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
AsyncInvoker: thread id =3D 2 has started. Total threads =3D 2</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[New Thread =
108651 (LWP 17649)]</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
AsyncInvoker: thread id =3D 3 has started. Total threads =3D 3</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
Accepted connection from giop:tcp:172.20.28.22:3449 because of this =
rule: &quot;* bidir,unix,tcp,ssl&quot;</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
inputMessage: from giop:tcp:172.20.28.22:3449 101 bytes</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">4749 4f50 =
0100 0100 5900 0000 0000 0000 GIOP....Y.......</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">0100 0000 =
0100 0000 1f00 0000 ff6d 7950 .............myP</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">6f61 0063 =
6c69 7365 7373 696f 6e6d 616e oa.clisessionman</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">6167 6572 =
5365 7276 6963 6500 0b00 0000 agerService.....</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">6765 7453 =
6573 7369 6f6e 0000 0000 0000 getSession......</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">0500 0000 =
726f 6f74 0000 0000 0500 0000 ....root........</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">726f 6f74 =
00&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp; root.</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">omniORB: =
Dispatching remote call 'getSession' to: =
root/myPoa&lt;clisessionmanagerService&gt; (active)</FONT>
</P>

<P><B><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">Server =
hangs after this call</FONT></B>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">Here is the =
stack trace of the threads from gdb</FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) thread =
108</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[Switching to =
thread 108 (Thread 108651 (LWP 17649))]#0&nbsp; 0x09bc70b8 in =
__syscall_rt_sigsuspend () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in soinit.c</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) =
bt</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#0&nbsp; =
0x09bc70b8 in __syscall_rt_sigsuspend () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#1&nbsp; =
0x09bc5da8 in __sigsuspend (set=3D0xfffffffc)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at =
../sysdeps/unix/sysv/linux/sigsuspend.c:45</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#2&nbsp; =
0x0a378c50 in __pthread_wait_for_restart_signal (self=3D0x725ffc00) at =
pthread.c:926</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#3&nbsp; =
0x0a374ea8 in pthread_cond_wait (cond=3D0x0, mutex=3D0x302080f8) at =
restart.h:34</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#4&nbsp; =
0x09d22c48 in omni_condition::wait (this=3D0x30208110) at =
posix.cc:136</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#5&nbsp; =
0x0a1b0c7c in omni_tracedmutex::lock (this=3D0x302080f8) at =
tracedthread.cc:179</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#6&nbsp; =
0x0a2418d8 in omni_tracedmutex_lock::omni_tracedmutex_lock =
(this=3D0x725febb8, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; m=3D@0x302080f8) at =
../../../../include/omniORB4/tracedthread.h:149</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#7&nbsp; =
0x0a1d92fc in omni::giopServer::notifyWkPreUpCall (this=3D0x302080d8, =
w=3D0x167ca360, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; data_in_buffer=3Dfalse) at =
giopServer.cc:1022</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#8&nbsp; =
0x0a1e1728 in omni::GIOP_S::ReceiveRequest (this=3D0x167ca498, =
desc=3D@0x725fef18)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at GIOP_S.cc:591</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#9&nbsp; =
0x0a1adfe0 in omniCallHandle::upcall (this=3D0x725ff0b8, =
servant=3D0x30278070, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; desc=3D@0x725fef18) at callHandle.cc:142</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#10 =
0x0b521e14 in =
cosinecom::agent::_impl_DirectorySessionManager::_dispatch ()</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">&nbsp;&nbsp; =
from ./orion/cosine/agent_cli/libS_agent_cli_generated.so</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#11 =
0x0a1866b0 in omni::omniOrbPOA::dispatch (this=3D0x30209668, =
handle=3D@0x725ff0b8, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; id=3D0x30279540) at poa.cc:1656</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#12 =
0x0a157794 in omniLocalIdentity::dispatch (this=3D0x30279540, =
handle=3D@0x725ff0b8)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at localIdentity.cc:202</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#13 =
0x0a1df88c in omni::GIOP_S::handleRequest (this=3D0x167ca498) at =
GIOP_S.cc:299</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#14 =
0x0a1ded48 in omni::GIOP_S::dispatcher (this=3D0x167ca498) at =
GIOP_S.cc:226</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#15 =
0x0a1da964 in omni::giopWorker::execute (this=3D0x167ca360) at =
giopWorker.cc:173</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#16 =
0x0a256528 in omniAsyncWorker::run (this=3D0x167ca388) at =
invoker.cc:152</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#17 =
0x09d247d4 in omni_thread_wrapper (ptr=3D0x167ca388) at =
posix.cc:425</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#18 =
0x0a375e84 in pthread_start_thread (arg=3D0xfffffffc) at =
manager.c:274</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#19 =
0x0a375ec8 in pthread_start_thread_event (arg=3D0x725ffc00) at =
manager.c:297</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#20 =
0x09c6111c in clone () at soinit.c:64</FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) thread =
107</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[Switching to =
thread 107 (Thread 107626 (LWP 17648))]#0&nbsp; 0x09c3b3f0 in nanosleep =
()</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in soinit.c</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) =
bt</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#0&nbsp; =
0x09c3b3f0 in nanosleep () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#1&nbsp; =
0x0a378dbc in __pthread_timedsuspend_new (self=3D0x727ffc00, =
abstime=3D0x727ff420)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at pthread.c:1066</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#2&nbsp; =
0x0a37515c in pthread_cond_timedwait_relative (cond=3D0x30208098, =
mutex=3D0x30208050, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; abstime=3D0x727ff420) at restart.h:45</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#3&nbsp; =
0x0a3752e8 in pthread_cond_timedwait (cond=3D0x4, mutex=3D0x0, =
abstime=3D0x727ff198)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at condvar.c:234</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#4&nbsp; =
0x09d22ef8 in omni_condition::timedwait (this=3D0x30208094, =
secs=3D946713641, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; nanosecs=3D363534000) at posix.cc:145</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#5&nbsp; =
0x0a1b2e54 in omni_tracedcondition::timedwait (this=3D0x30208090, =
secs=3D946713641, </FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; nanosecs=3D363534000) at =
tracedthread.cc:389</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#6&nbsp; =
0x0a1cdcf4 in omni::Scavenger::execute (this=3D0x1668ed70) at =
giopStrand.cc:641</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#7&nbsp; =
0x0a256528 in omniAsyncWorker::run (this=3D0x167ca238) at =
invoker.cc:152</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#8&nbsp; =
0x09d247d4 in omni_thread_wrapper (ptr=3D0x167ca238) at =
posix.cc:425</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#9&nbsp; =
0x0a375e84 in pthread_start_thread (arg=3D0x4) at manager.c:274</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#10 =
0x0a375ec8 in pthread_start_thread_event (arg=3D0x727ffc00) at =
manager.c:297</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#11 =
0x09c6111c in clone () at soinit.c:64</FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) thread =
106</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[Switching to =
thread 106 (Thread 106601 (LWP 17647))]#0&nbsp; 0x09c5aea0 in select =
()</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in soinit.c</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) =
bt</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#0&nbsp; =
0x09c5aea0 in select () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#1&nbsp; =
0x0a1f983c in omni::do_select (maxfd=3D13, r=3D0x729ff398, w=3D0x0, =
e=3D0x0, t=3D0x729ff388)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at SocketCollection.cc:218</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#2&nbsp; =
0x0a1f9b34 in omni::SocketCollection::Select (this=3D0x302089ec)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at SocketCollection.cc:271</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#3&nbsp; =
0x0a235e90 in omni::tcpEndpoint::AcceptAndMonitor (this=3D0x302089e8, =
</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; func=3D0xa1dac7c =
&lt;omni::giopRendezvouser::notifyReadable(void *, omni::giopConnection =
*)&gt;, cookie=3D0x302094c0) at ./tcp/tcpEndpoint.cc:337</FONT></P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#4&nbsp; =
0x0a1dae54 in omni::giopRendezvouser::execute =
(this=3D0x302094c0)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at giopRendezvouser.cc:73</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#5&nbsp; =
0x0a256528 in omniAsyncWorker::run (this=3D0x302094e8) at =
invoker.cc:152</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#6&nbsp; =
0x09d247d4 in omni_thread_wrapper (ptr=3D0x302094e8) at =
posix.cc:425</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#7&nbsp; =
0x0a375e84 in pthread_start_thread (arg=3D0x4) at manager.c:274</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#8&nbsp; =
0x0a375ec8 in pthread_start_thread_event (arg=3D0x729ffc00) at =
manager.c:297</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#9&nbsp; =
0x09c6111c in clone () at soinit.c:64</FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) thread =
105</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">[Switching to =
thread 105 (Thread 105576 (LWP 17644))]#0&nbsp; 0x09bc70b8 in =
__syscall_rt_sigsuspend () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; in soinit.c</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">(gdb) =
bt</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#0&nbsp; =
0x09bc70b8 in __syscall_rt_sigsuspend () at soinit.c:64</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#1&nbsp; =
0x09bc5da8 in __sigsuspend (set=3D0xfffffffc)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at =
../sysdeps/unix/sysv/linux/sigsuspend.c:45</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#2&nbsp; =
0x0a378c50 in __pthread_wait_for_restart_signal (self=3D0x72bffc00) at =
pthread.c:926</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#3&nbsp; =
0x0a374ea8 in pthread_cond_wait (cond=3D0x0, mutex=3D0xa2e53f4) at =
restart.h:34</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#4&nbsp; =
0x09d22c48 in omni_condition::wait (this=3D0xa2e5430) at =
posix.cc:136</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#5&nbsp; =
0x0a1b26f8 in omni_tracedcondition::wait (this=3D0xa2e542c) at =
tracedthread.cc:342</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#6&nbsp; =
0x0a10d150 in omniOrbORB::run (this=3D0x30207f58) at =
corbaOrb.cc:775</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#7&nbsp; =
0x0a445d8c in init_orb () from =
./orion/cosine/agent_cli/libS_ctl_nh_agent_cli.so</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#8&nbsp; =
0x1053f6dc in orb_task () at /vobs/orion/os/linux/main.c:286</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#9&nbsp; =
0x105de1cc in __os_tasks_func_entry_point__ (_xx=3D0x167a2040)</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">&nbsp;&nbsp;&nbsp; at =
/vobs/orion/boot/osdeps/linux/src/task.c:385</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#10 =
0x0a375e84 in pthread_start_thread (arg=3D0xfffffffc) at =
manager.c:274</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#11 =
0x0a375ec8 in pthread_start_thread_event (arg=3D0x72bffc00) at =
manager.c:297</FONT>
<BR><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">#12 =
0x09c6111c in clone () at soinit.c:64</FONT>
</P>

<P><B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">thread 105 =
is the thread in which the ORBServer is running as as =
task</FONT></B><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier =
New">.</FONT>
</P>

<P><FONT COLOR=3D"#0000FF" SIZE=3D2 FACE=3D"Courier New">In the =
beginning I ran into SIGSEGV when trying to resolve the RootPoa. I was =
getting SIGSEGV consistently in the</FONT><B> <FONT COLOR=3D"#000000" =
SIZE=3D2 FACE=3D"Courier New">omni_tracedmutex::lock()</FONT></B><FONT =
COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">during initialization =
of the ORB.</FONT></P>

<P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">What I noticed =
was in that method, there is a local variable sync declared as =
follows</FONT>
</P>

<P><B><FONT COLOR=3D"#FF0000" SIZE=3D2 FACE=3D"Courier =
New">omni_mutex_lock sync(pd_lock);</FONT></B>
</P>

<P><B><FONT COLOR=3D"#FF0000" SIZE=3D2 FACE=3D"Courier New">I changed =
this to a heap variable as follows</FONT></B>
</P>

<P><B><FONT COLOR=3D"#FF0000" SIZE=3D2 FACE=3D"Courier =
New">omni_mutex_lock* sync =3D new omni_mutex_lock(pd_lock); // =
sheshi</FONT></B>
</P>

<P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">after that the =
SIGSEGV went away. I still dont know what is reason for this.</FONT>
<BR><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">Now, when I =
make the call (its a python client using FnORB), server seems to be =
hung. (stack traces from the gdb is above).</FONT></P>

<P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">Please, please =
I would really really appreciate if someone can help me identify the =
problem.</FONT>
</P>

<P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">thanks in =
advance</FONT>
</P>

<P><FONT COLOR=3D"#000000" SIZE=3D2 FACE=3D"Courier New">-sheshi</FONT>
</P>

</BODY>
</HTML>
------_=_NextPart_001_01C242FB.72B27E00--