Discussion:
Server and client stuck in select()
(too old to reply)
aksinghdce
2011-10-03 18:26:11 UTC
Permalink
Hi,

I have a server running and waiting for requests in the select call.
When I run the client it also waits in the select() call after sending
the orb request.

Does anybody know what might be the problem. The following are the gdb
back trace. Both server and client are written in C++.

Server trace:

***@freescale-p1020rdb:~/bin/alarm# ./gdb AlarmSvc
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
For bug reporting instructions, please see:
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmSvc...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmSvc
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
trying to resolve the server name EventService

AlarmMgr server

CorbaSetup getInstance
Server getting registered with the name /Node/AlarmManager
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0 0x0de78130 in select () from /lib/libc.so.6
#1 0x0fa4122c in ACE_OS::select (width=12, rfds=0x1006f2d4,
wfds=<value optimized out>, efds=<value optimized out>,
timeout=<value optimized out>) at ../../ace/OS_NS_sys_select.inl:
45
#2 0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x1006edc0, dispatch_set=...,
max_wait_time=0x0)
at ../../ace/Select_Reactor_T.cpp:1096
#3 0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x1006edc0,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4 0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>,
max_wait_time=<value optimized out>, guard=<value optimized out>)
at ../../ace/TP_Reactor.cpp:176
#5 0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x1006edc0,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6 0x0fc1f408 in ACE_Reactor::handle_events (this=0x1005d8e8, tv=0x0,
perform_work=0)
at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7 TAO_ORB_Core::run (this=0x1005d8e8, tv=0x0, perform_work=0)
at ORB_Core.cpp:2225
#8 0x0fc17a50 in CORBA::ORB::run (this=0x10070730, tv=<value
optimized out>)
at ORB.cpp:188
#9 0x0fc17ac8 in CORBA::ORB::run (this=<value optimized out>) at
ORB.cpp:174
#10 0x0ffdd6d8 in TAO_ORB_Manager::run (this=0xf8fd6b4) at
ORB_Manager.cpp:202
#11 0x1000f8b8 in Server<AlarmMgr_i>::run (argc=<value optimized out>,
argv=<value optimized out>)
at /vobs/gxc/src/NodeServices/CorbaSetup/Simple_util.cpp:145
#12 main (argc=<value optimized out>, argv=<value optimized out>)
at AlarmSvc.cpp:19
(gdb) c
Continuing.



Client's trace:
***@freescale-p1020rdb:~/bin/alarm# ./gdb AlarmClient
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
For bug reporting instructions, please see:
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmClient...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmClient
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Talking to AlarmMgr
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
trying to resolve the server name /Node/AlarmManager
Calling Set Alarm
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0 0x0de78130 in select () from /lib/libc.so.6
#1 0x0fa4122c in ACE_OS::select (width=12, rfds=0x10047224,
wfds=<value optimized out>, efds=<value optimized out>, timeout=<value
optimized out>)
at ../../ace/OS_NS_sys_select.inl:45
#2 0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x10046d10, dispatch_set=...,
max_wait_time=0x0)
at ../../ace/Select_Reactor_T.cpp:1096
#3 0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x10046d10, max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4 0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>, max_wait_time=<value optimized out>, guard=<value optimized
out>)
at ../../ace/TP_Reactor.cpp:176
#5 0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x10046d10,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6 0x0fbff7d8 in ACE_Reactor::handle_events (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7 TAO_Leader_Follower::wait_for_event (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
at Leader_Follower.cpp:404
#8 0x0fc6ed8c in TAO_Wait_On_Leader_Follower::wait (this=0x1005d6b0,
max_wait_time=0x0, rd=...) at Wait_On_Leader_Follower.cpp:68
#9 0x0fc47818 in TAO::Synch_Twoway_Invocation::wait_for_reply
(this=0xbff31f78, max_wait_time=0x0, rd=<value optimized out>, bd=...)
at Synch_Invocation.cpp:257
#10 0x0fc47f90 in TAO::Synch_Twoway_Invocation::remote_twoway
(this=0xbff31f78, max_wait_time=0x0) at Synch_Invocation.cpp:168
#11 0x0fbf64f4 in TAO::Invocation_Adapter::invoke_twoway
(this=0xbff3216c, details=<value optimized out>, effective_target=...,
r=...,
max_wait_time=@0xbff3203c) at Invocation_Adapter.cpp:295
#12 0x0fbf5e14 in TAO::Invocation_Adapter::invoke_remote_i
(this=0xbff3216c, stub=<value optimized out>, details=...,
effective_target=...,
max_wait_time=@0xbff3203c) at Invocation_Adapter.cpp:269
#13 0x0fbf6d10 in TAO::Invocation_Adapter::invoke_i (this=0xbff3216c,
stub=0x10061da0, details=...) at Invocation_Adapter.cpp:92
#14 0x0fbf6864 in TAO::Invocation_Adapter::invoke (this=0xbff3216c,
ex_data=0x0, ex_count=0) at Invocation_Adapter.cpp:46
#15 0x0f08e6d4 in AlarmMgr::set (this=<value optimized out>,
condition=<value optimized out>, seq=<value optimized out>, sev=<value
optimized out>)
at AlarmMgr_c.cc:219
#16 0x10001b70 in set_Alarm (client_=<value optimized out>) at
Client.cpp:26
#17 0x10002024 in main () at Client.cpp:50
(gdb) c
Continuing.


Thanks,
Amit
Johnny Willemsen
2011-10-03 18:37:53 UTC
Permalink
Hi,

The client has send a corba request to a server and is waiting for a
reply, but your server is just idle, nothing happening there. Are there
maybe more threads in the server that could do work?

Regards,

Johnny
www.remedy.nl
Post by aksinghdce
Hi,
I have a server running and waiting for requests in the select call.
When I run the client it also waits in the select() call after sending
the orb request.
Does anybody know what might be the problem. The following are the gdb
back trace. Both server and client are written in C++.
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmSvc...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmSvc
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
trying to resolve the server name EventService
AlarmMgr server
CorbaSetup getInstance
Server getting registered with the name /Node/AlarmManager
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0 0x0de78130 in select () from /lib/libc.so.6
#1 0x0fa4122c in ACE_OS::select (width=12, rfds=0x1006f2d4,
wfds=<value optimized out>, efds=<value optimized out>,
45
#2 0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x1006edc0, dispatch_set=...,
max_wait_time=0x0)
at ../../ace/Select_Reactor_T.cpp:1096
#3 0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x1006edc0,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4 0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>,
max_wait_time=<value optimized out>, guard=<value optimized out>)
at ../../ace/TP_Reactor.cpp:176
#5 0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x1006edc0,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6 0x0fc1f408 in ACE_Reactor::handle_events (this=0x1005d8e8, tv=0x0,
perform_work=0)
at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7 TAO_ORB_Core::run (this=0x1005d8e8, tv=0x0, perform_work=0)
at ORB_Core.cpp:2225
#8 0x0fc17a50 in CORBA::ORB::run (this=0x10070730, tv=<value
optimized out>)
at ORB.cpp:188
#9 0x0fc17ac8 in CORBA::ORB::run (this=<value optimized out>) at
ORB.cpp:174
#10 0x0ffdd6d8 in TAO_ORB_Manager::run (this=0xf8fd6b4) at
ORB_Manager.cpp:202
#11 0x1000f8b8 in Server<AlarmMgr_i>::run (argc=<value optimized out>,
argv=<value optimized out>)
at /vobs/gxc/src/NodeServices/CorbaSetup/Simple_util.cpp:145
#12 main (argc=<value optimized out>, argv=<value optimized out>)
at AlarmSvc.cpp:19
(gdb) c
Continuing.
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmClient...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmClient
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Talking to AlarmMgr
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
trying to resolve the server name /Node/AlarmManager
Calling Set Alarm
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0 0x0de78130 in select () from /lib/libc.so.6
#1 0x0fa4122c in ACE_OS::select (width=12, rfds=0x10047224,
wfds=<value optimized out>, efds=<value optimized out>, timeout=<value
optimized out>)
at ../../ace/OS_NS_sys_select.inl:45
#2 0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x10046d10, dispatch_set=...,
max_wait_time=0x0)
at ../../ace/Select_Reactor_T.cpp:1096
#3 0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x10046d10, max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4 0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>, max_wait_time=<value optimized out>, guard=<value optimized
out>)
at ../../ace/TP_Reactor.cpp:176
#5 0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x10046d10,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6 0x0fbff7d8 in ACE_Reactor::handle_events (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7 TAO_Leader_Follower::wait_for_event (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
at Leader_Follower.cpp:404
#8 0x0fc6ed8c in TAO_Wait_On_Leader_Follower::wait (this=0x1005d6b0,
max_wait_time=0x0, rd=...) at Wait_On_Leader_Follower.cpp:68
#9 0x0fc47818 in TAO::Synch_Twoway_Invocation::wait_for_reply
(this=0xbff31f78, max_wait_time=0x0, rd=<value optimized out>, bd=...)
at Synch_Invocation.cpp:257
#10 0x0fc47f90 in TAO::Synch_Twoway_Invocation::remote_twoway
(this=0xbff31f78, max_wait_time=0x0) at Synch_Invocation.cpp:168
#11 0x0fbf64f4 in TAO::Invocation_Adapter::invoke_twoway
(this=0xbff3216c, details=<value optimized out>, effective_target=...,
r=...,
#12 0x0fbf5e14 in TAO::Invocation_Adapter::invoke_remote_i
(this=0xbff3216c, stub=<value optimized out>, details=...,
effective_target=...,
#13 0x0fbf6d10 in TAO::Invocation_Adapter::invoke_i (this=0xbff3216c,
stub=0x10061da0, details=...) at Invocation_Adapter.cpp:92
#14 0x0fbf6864 in TAO::Invocation_Adapter::invoke (this=0xbff3216c,
ex_data=0x0, ex_count=0) at Invocation_Adapter.cpp:46
#15 0x0f08e6d4 in AlarmMgr::set (this=<value optimized out>,
condition=<value optimized out>, seq=<value optimized out>, sev=<value
optimized out>)
at AlarmMgr_c.cc:219
#16 0x10001b70 in set_Alarm (client_=<value optimized out>) at
Client.cpp:26
#17 0x10002024 in main () at Client.cpp:50
(gdb) c
Continuing.
Thanks,
Amit
aksinghdce
2011-10-03 21:05:53 UTC
Permalink
Post by Johnny Willemsen
Hi,
The client has send a corba request to a server and is waiting for a
reply, but your server is just idle, nothing happening there. Are there
maybe more threads in the server that could do work?
Regards,
Johnnywww.remedy.nl
Post by aksinghdce
Hi,
I have a server running and waiting for requests in the select call.
When I run the client it also waits in the select() call after sending
the orb request.
Does anybody know what might be the problem. The following are the gdb
back trace. Both server and client are written in C++.
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmSvc...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmSvc
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
 CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
 trying to resolve the server name EventService
         AlarmMgr server
CorbaSetup getInstance
 Server getting registered with the name /Node/AlarmManager
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0  0x0de78130 in select () from /lib/libc.so.6
#1  0x0fa4122c in ACE_OS::select (width=12, rfds=0x1006f2d4,
    wfds=<value optimized out>, efds=<value optimized out>,
45
#2  0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x1006edc0, dispatch_set=...,
max_wait_time=0x0)
    at ../../ace/Select_Reactor_T.cpp:1096
#3  0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x1006edc0,
    max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4  0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>,
    max_wait_time=<value optimized out>, guard=<value optimized out>)
    at ../../ace/TP_Reactor.cpp:176
#5  0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x1006edc0,
    max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6  0x0fc1f408 in ACE_Reactor::handle_events (this=0x1005d8e8, tv=0x0,
    perform_work=0)
    at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7  TAO_ORB_Core::run (this=0x1005d8e8, tv=0x0, perform_work=0)
    at ORB_Core.cpp:2225
#8  0x0fc17a50 in CORBA::ORB::run (this=0x10070730, tv=<value
optimized out>)
    at ORB.cpp:188
#9  0x0fc17ac8 in CORBA::ORB::run (this=<value optimized out>) at
ORB.cpp:174
#10 0x0ffdd6d8 in TAO_ORB_Manager::run (this=0xf8fd6b4) at
ORB_Manager.cpp:202
#11 0x1000f8b8 in Server<AlarmMgr_i>::run (argc=<value optimized out>,
    argv=<value optimized out>)
    at /vobs/gxc/src/NodeServices/CorbaSetup/Simple_util.cpp:145
#12 main (argc=<value optimized out>, argv=<value optimized out>)
    at AlarmSvc.cpp:19
(gdb) c
Continuing.
GNU gdb (MontaVista Linux Sourcery G++ 4.4-315) 7.0.50.20100218-cvs
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/
gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show
copying"
and "show warranty" for details.
This GDB was configured as "powerpc-montavista-linux-gnu".
<http://support.mvista.com/>...
Reading symbols from /home/root/bin/alarm/AlarmClient...done.
(gdb) r
Starting program: /home/root/bin/alarm/AlarmClient
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
 Talking to AlarmMgr
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Retrieving CORBA ORB object
CorbaSetup getInstance
 CorbaSetup Constructor
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
warning: Unable to find libthread_db matching inferior's thread
library, thread debugging will not be available.
Corba Initalized!!!
 trying to resolve the server name /Node/AlarmManager
Calling Set Alarm
^C
Program received signal SIGINT, Interrupt.
0x0de78130 in select () from /lib/libc.so.6
(gdb) bt
#0  0x0de78130 in select () from /lib/libc.so.6
#1  0x0fa4122c in ACE_OS::select (width=12, rfds=0x10047224,
wfds=<value optimized out>, efds=<value optimized out>, timeout=<value
optimized out>)
    at ../../ace/OS_NS_sys_select.inl:45
#2  0x0f9c9bc0 in ACE_Select_Reactor_T<ACE_Reactor_Token_T<ACE_Token>
::wait_for_multiple_events (this=0x10046d10, dispatch_set=...,
max_wait_time=0x0)
    at ../../ace/Select_Reactor_T.cpp:1096
#3  0x0fa9a318 in ACE_TP_Reactor::get_event_for_dispatching
(this=0x10046d10, max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:472
#4  0x0fa9a9bc in ACE_TP_Reactor::dispatch_i (this=<value optimized
out>, max_wait_time=<value optimized out>, guard=<value optimized
out>)
    at ../../ace/TP_Reactor.cpp:176
#5  0x0fa9ac2c in ACE_TP_Reactor::handle_events (this=0x10046d10,
max_wait_time=0x0) at ../../ace/TP_Reactor.cpp:169
#6  0x0fbff7d8 in ACE_Reactor::handle_events (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
    at /user/vthattai/Calient/src/Opensource/ace_wrappers/ace/
Reactor.inl:188
#7  TAO_Leader_Follower::wait_for_event (this=0x10046c78,
event=0x100661c4, transport=<value optimized out>, max_wait_time=0x0)
at Leader_Follower.cpp:404
#8  0x0fc6ed8c in TAO_Wait_On_Leader_Follower::wait (this=0x1005d6b0,
max_wait_time=0x0, rd=...) at Wait_On_Leader_Follower.cpp:68
#9  0x0fc47818 in TAO::Synch_Twoway_Invocation::wait_for_reply
(this=0xbff31f78, max_wait_time=0x0, rd=<value optimized out>, bd=...)
    at Synch_Invocation.cpp:257
#10 0x0fc47f90 in TAO::Synch_Twoway_Invocation::remote_twoway
(this=0xbff31f78, max_wait_time=0x0) at Synch_Invocation.cpp:168
#11 0x0fbf64f4 in TAO::Invocation_Adapter::invoke_twoway
(this=0xbff3216c, details=<value optimized out>, effective_target=...,
r=...,
#12 0x0fbf5e14 in TAO::Invocation_Adapter::invoke_remote_i
(this=0xbff3216c, stub=<value optimized out>, details=...,
effective_target=...,
#13 0x0fbf6d10 in TAO::Invocation_Adapter::invoke_i (this=0xbff3216c,
stub=0x10061da0, details=...) at Invocation_Adapter.cpp:92
#14 0x0fbf6864 in TAO::Invocation_Adapter::invoke (this=0xbff3216c,
ex_data=0x0, ex_count=0) at Invocation_Adapter.cpp:46
#15 0x0f08e6d4 in AlarmMgr::set (this=<value optimized out>,
condition=<value optimized out>, seq=<value optimized out>, sev=<value
optimized out>)
    at AlarmMgr_c.cc:219
#16 0x10001b70 in set_Alarm (client_=<value optimized out>) at
Client.cpp:26
#17 0x10002024 in main () at Client.cpp:50
(gdb) c
Continuing.
Thanks,
Amit
Its just one single process running as the server, no threads
spawned.

In the server I am also creating a push supplier on an Event channel,
using the Event Service of TAO.
If I don't create the event channel ( I mean I just comment out the
function call which creates the event channel and registers the
supplier object with it ), then the client is totally able to call the
server and the server responds.

I have tested the supplier object by locally pushing CORBA::Any into
it and the consumer gets the CORBA::Any and prints it well. So, my
point is that if there is no issue with the supplier or the event
channel then what is causing the Servant Skeleton to remain idle if I
use the event service.

Please ask for any more information to help me with this.

Thanks,
Amit
Johnny Willemsen
2011-10-04 08:34:44 UTC
Permalink
Hi,

Very hard to tell where this problem is related to. Are you sure that
basic TAO stuff really works? Have you ran all TAO tests on your platform?

Regards,

Johnny Willemsen
http://www.theaceorb.nl
Post by aksinghdce
Its just one single process running as the server, no threads
spawned.
In the server I am also creating a push supplier on an Event channel,
using the Event Service of TAO.
If I don't create the event channel ( I mean I just comment out the
function call which creates the event channel and registers the
supplier object with it ), then the client is totally able to call the
server and the server responds.
I have tested the supplier object by locally pushing CORBA::Any into
it and the consumer gets the CORBA::Any and prints it well. So, my
point is that if there is no issue with the supplier or the event
channel then what is causing the Servant Skeleton to remain idle if I
use the event service.
Please ask for any more information to help me with this.
Thanks,
Amit
Loading...