[Mono-dev] Stability regression on recent git head
Jonathan Pryor
jonpryor at vt.edu
Wed Sep 15 13:35:38 EDT 2010
I committed a workaround for this in commit 8cdb685. Could you see if
that works for you?
Thanks,
- Jon
On Wed, 2010-09-15 at 11:55 +0100, Dick Porter wrote:
> Hi all
>
> We've been testing the sgen GC with our server, as part of the effort to
> stabilise it. Recently however we've noticed that the runtime has been
> very unstable, in particular using the _Boehm_ GC.
>
> I can start our server with this morning's git head runtime, with Boehm
> GC, and as soon as I issue a client command (which uses remoting) I get
> the following stack trace on the server:
>
> Plastic SCM daemon up. 3.0.187.2 1151 ms startup time
> Stacktrace:
>
> at (wrapper managed-to-native) Mono.Unix.UnixSignal.WaitAny
> (intptr[],int,int) <0x00003>
> at (wrapper managed-to-native) Mono.Unix.UnixSignal.WaitAny
> (intptr[],int,int) <0x00003>
> at Mono.Unix.UnixSignal.WaitAny (Mono.Unix.UnixSignal[],int) <0x0011e>
> at Mono.Unix.UnixSignal.WaitAny (Mono.Unix.UnixSignal[]) <0x00012>
> at Codice.CM.Daemon.Daemon.HandleSignals () <0x0013a>
> at Codice.CM.Daemon.Daemon.LaunchUnixDaemon
> (Codice.CM.Server.ISystemRunner,string) <0x00036>
> at xy.c (Codice.CM.Server.SystemRunner) <0x0005f>
> at xy.a (an) <0x0035c>
> at xy.a (string[]) <0x000b1>
> at (wrapper runtime-invoke) <Module>.runtime_invoke_int_object
> (object,intptr,intptr,intptr) <0x0008f>
>
>
> This is 100% repeatable, with the identical stack trace every time.
> Interestingly, it doesn't happen with the sgen GC though I have seen
> this stack trace appear intermittently with sgen, which suggests to me
> that there might be some memory corruption going on that is more likely
> to be tickled by the Boehm GC.
>
> The actual line of code that triggers the segfault is in
> mono/support/signal.c, in wait_for_any():
>
> diff --git a/support/signal.c b/support/signal.c
> index abd7638..a7f97fa 100644
> --- a/support/signal.c
> +++ b/support/signal.c
> @@ -351,7 +351,7 @@ wait_for_any (signal_info** signals, int count, int
> *currfd,
> ptv = &tv;
> }
> r = poll (fd_structs, count, timeout);
> - } while (keep_trying (r) && !shutting_down ());
> + } while (keep_trying (r) /*&& !shutting_down ()*/);
>
> idx = -1;
> if (r == 0)
>
> Commenting out the delegate call cures the crash for me.
>
> I reopened bug https://bugzilla.novell.com/show_bug.cgi?id=592981 with these traces, but
> as no-one has commented on it in a couple of weeks I'm highlighting it here too.
>
> - Dick
>
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
More information about the Mono-devel-list
mailing list