Re: [Fwd: tests/rr-server core dumps multi-processor]

Paul Caffrey <[email protected]> Thu, 20 Feb 2003 17:23:32 +0000
Newsgroups gmane.network.beep.roadrunner.general
Message-ID <[email protected]>
Hi Jonas

Got the following client failure on the 4 cpu machine after about 2.5 hours

This resulted in the server crashing

The test continues to run on single cpu machines

Regards

Paul

** ERROR **: rr_connection_start failed: disconnect()

aborting...

** ERROR **: rr_connection_start failed: disconnect()

aborting...

** ERROR **: rr_channel_close: disconnect()

r/lib/libthread.so.1
(gdb) bt
#0  0xff079794 in __sigprocmask () from /usr/lib/libthread.so.1
#1  0xff06e9a8 in _resetsig () from /usr/lib/libthread.so.1
#2  0xff06e148 in _sigon () from /usr/lib/libthread.so.1
#3  0xff071188 in _thrp_kill () from /usr/lib/libthread.so.1
#4  0xfeecb760 in raise () from /usr/lib/libc.so.1
#5  0xfeeb5a84 in abort () from /usr/lib/libc.so.1
#6  0xff233de8 in g_logv (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0xfe5016d8 "rr_connection_start failed: disconnect()\n",
     args1=0x3d1bc) at gmessages.c:508
#7  0xff233e90 in g_log (log_domain=0x0, log_level=G_LOG_LEVEL_ERROR,
     format=0x125a8 "rr_connection_start failed: %s\n") at gmessages.c:527
#8  0x0001129c in do_tests (connection=0x0) at rr-client.c:31
#9  0x000113d0 in my_thread (data=0x2b230) at rr-client.c:55
#10 0xff246c6c in g_thread_create_proxy (data=0x0) at gthread.c:551

Jonas Borgström wrote:
> On Thu, 2003-02-20 at 14:18, Paul Caffrey wrote:
> 
>>Jonas
>>
>>Further testing of new version results below.
>>
>>Once again thanks
>>
>>Paul
>>
>>Running on 4 cpu machine, client core dumps after ~ 3 hours
>>
>>server stays up and running
>>
>>(process:10205): RR-CRITICAL **: file rr-message-start.c: line 365 
>>(rr_message_start_done): assertion `RR_IS_MESSAGE_START (start)' failed
> 
> 
> Hi,
> 
> I think I have found the reason for this assertion, It is a similar
> problem to the bug I found yesterday.
> 
> I've committed a patch that should fix this to the CVS. A complete
> source tree is available here:
> 
> http://afs.codefactory.se/~jonas/roadrunner/roadrunner-20030220.tar.gz
> 
> *snip*
> 
> 
>>On itchy, single cpu machine the client crashes after ~ 3 hours
>>No error message, Bus Error (core dumped)
>>(gdb) bt
>>#0  0xff222604 in g_io_create_watch (channel=0x3cce0, condition=G_IO_OUT)
>>     at giochannel.c:455
>>#1  0xff375f44 in add_watch_full (channel=0x3cce0, priority=0,
>>     condition=G_IO_OUT, func=0xff377388 <out_event>, user_data=0x2af98,
>>     notify=0xff376634 <out_removed>) at rr-tcpconnection.c:99
>>#2  0xff376b50 in enable_output (conn=0x2af98) at rr-tcpconnection.c:383
>>#3  0xff37325c in rr_connection_enable_output (connection=0x2af98)
>>     at rr-connection.c:430
>>#4  0xff372a4c in rr_connection_register_sender (connection=0x2af98,
>>     channel=0x2bb70) at rr-connection.c:201
>>#5  0xff369a6c in send_helper (channel=0x2bb70, object=0x432a4,
>>     error=0xfe9fbe54) at rr-channel.c:262
>>#6  0xff369b78 in rr_channel_send_message (channel=0x2bb70, 
>>message=0x432a4,
>>     error=0xfe9fbe54) at rr-channel.c:285
>>#7  0xff370040 in rr_manager_close_channel (manager=0x2bb70, 
>>channel=0x432a4,
>>     code=200, xml_lang=0x12628 "sv", diagnostic=0x12630 "Foo",
>>     error=0xfe9fbe54) at rr-manager.c:893
>>#8  0xff36b010 in rr_channel_close (channel=0x425d4, code=200,
>>     xml_lang=0x12628 "sv", diagnostic=0x12630 "Foo", error=0xfe9fbe54)
>>     at rr-channel.c:756
>>#9  0x00011368 in do_tests (connection=0x425d4) at rr-client.c:44
>>#10 0x000113d0 in my_thread (data=0x2af98) at rr-client.c:55
>>#11 0xff246c6c in g_thread_create_proxy (data=0x0) at gthread.c:551
>>
> 
> 
> I've never managed to reproduce this one. Can you recompile
> glib2 with debug symbols so we can get a better traceback 
> (CFLAGS="-g -O0"). It might be some thread related problem
> with the glib event loop.
> 
> After the change I mentioned above the only bug I can reproduce
> is that after an hour or so a read() operation on the socket
> might fail with:
> 
> errno = ENVAL and strerror returns:
> 
> "Connection reset by peer"
> 
> I have no idea why, because read() and write() are the only
> operations that are done on that socket and the socket
> is on localhost. And only one thread is used to read/write
> from/to the socket.
> 
> This only happens when running on a 4 cpu solaris box. I haven't
> managed to reproduce any of this on a 2 cpu linux 2.2 box or
> on my linux laptop.
> 
> 
>>PS
>>
>>On third machine, single cpu machine also, still running no problems.
>>
> 
> Well, it might sooner or later hit the bug I fixed above :)
> 
> / Jonas