client locks up somewhere in giop
- From: Ross Golder <ross golder org>
- To: orbit-list gnome org
- Subject: client locks up somewhere in giop
- Date: 09 Oct 2001 17:15:49 +0100
I have written the beginnings of a bot program, using ORBit for
inter-process communication between the main bot and a dynamic array of
out-of-process modules that implement the different types of
functionality. It is an excercies in using CORBA more than anything.
However, I am unable to determine why, after a few successfull
interactions between the two processes, the caller goes into a
CPU-caning loop waiting for the called object to return from a call.
I'm using RH71/ORBit-0.5.8-ximian.2.
When I break out of the looping process run in gdb, the stacktrace
shows:
Program received signal SIGINT, Interrupt.
[Switching to Thread 1026 (LWP 16321)]
0x4024790e in __select () from /lib/i686/libc.so.6
(gdb) bt
#0 0x4024790e in __select () from /lib/i686/libc.so.6
#1 0x4012615c in __DTOR_END__ () from /usr/lib/libIIOP.so.0
#2 0x4011ebb2 in giop_main_next_message_2 (blocking=1,
monitor=0x805a440)
at connection.c:1174
#3 0x4012004c in giop_recv_reply_buffer_use_multiple_2
(request_cnx=0x805a440,
request_ids=0x40abe544, block_for_reply=1) at giop-msg-buffer.c:1013
#4 0x4012015b in giop_recv_reply_buffer_use_2 (request_cnx=0x805a440,
request_id=1085007260, block_for_reply=1) at giop-msg-buffer.c:1062
#5 0x0804bdc1 in Techbot_Module_processMessage (_obj=0x805a3b0,
message=0x40abe61c,
ev=0x40abe60c) at techbot-stubs.c:2104
#6 0x0804da08 in libirc_callback (message=0x805a7d0) at
techbot-modulehub-impl.c:528
#7 0x0804e1a6 in irc_connection_handle_message (conn=0x8056690,
message=0x805a7d0)
at irc_connection.c:263
#8 0x0804df47 in irc_thread_connect (ptr=0x8056690) at
irc_connection.c:163
#9 0x40158bfd in pthread_start_thread (arg=0x40abec00) at manager.c:262
#10 0x40158cdf in pthread_start_thread_event (arg=0x40abec00) at
manager.c:285
As I 'continue', it seems to loop through :
ORBit_handle_incoming_message (recv_buffer=0x8055338) at server.c:153
giop_received_list_push (recv_buffer=0x8055338) at giop-msg-buffer.c:928
g_list_prepend (list=0x0, data=0x8055338) at glist.c:198
g_list_prepend (list=0x0, data=0x8055338) at glist.c:201
giop_received_list_push (recv_buffer=0x8055338) at giop-msg-buffer.c:930
ORBit_handle_incoming_message (recv_buffer=0x8055338) at server.c:174
giop_main_iterate (blocking=1) at connection.c:1285
giop_main () at connection.c:1149
giop_main_iterate (blocking=1) at connection.c:1277
giop_main_next_message (blocking=1) at connection.c:1159
giop_main_next_message_2 (blocking=1, monitor=0x0) at connection.c:1170
giop_received_list_pop () at giop-msg-buffer.c:939
g_list_remove_link (list=0x805248c, link=0x805248c) at glist.c:300
giop_received_list_pop () at giop-msg-buffer.c:946
g_list_free_1 (list=0x805248c) at glist.c:159
giop_received_list_pop () at giop-msg-buffer.c:950
giop_main_next_message_2 (blocking=1, monitor=0x0) at connection.c:1171
giop_main_next_message (blocking=1) at connection.c:1160
giop_main_iterate (blocking=1) at connection.c:1279
...and back to...
ORBit_handle_incoming_message (recv_buffer=0x8055338) at server.c:153
The called method seems to execute correctly, and this appears to be
happening on returning from the call. I can't imagine what would cause
it
I'm not sure what other information is required to analyse this problem
further. If anyone can suggest any further actions or investigations I
can make, I'd appreciate it.
If anyone wants to see the code, it is fairly trivial, and is checked
into cvs.techbot.sourceforge.net, module 'techbot', branch
'libirc-breakdown'.
Thanks in advance for any advice,
--
Ross
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]