On Wednesday 04 July 2007 15:17:33 Mark Glines wrote:
> It helps, thanks. Glad to know I can't just blame gentoo.
> After doing the binary search I mentioned earlier and finding that it
> started breaking in svn r19441, there was some discussion in the IRC
> channel. The important bit is:
>
> [13:35] <@chromatic> Hm, I don't blame 19441 for the shootout test.
> [13:35] <@chromatic> I think it just changed the memory characteristics of
> the program sufficiently to trigger a lurking GC bug.
>
>
> So now I'll try to see if there was a DOD run that freed up something
> it shouldn't have, or something like that.
I see the segfault now during global destruction:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1212667696 (LWP 25316)]
0xb7ddb7db in Parrot_dod_sweep (interp=0x804e008, pool=0x806eb60)
at src/gc/dod.c:641
641 VTABLE_destroy(interp, p);
(gdb) bt
#0 0xb7ddb7db in Parrot_dod_sweep (interp=0x804e008, pool=0x806eb60)
at src/gc/dod.c:641
#1 0xb7ddbf37 in Parrot_dod_ms_run (interp=0x804e008, flags=4)
at src/gc/dod.c:987
#2 0xb7ddc097 in Parrot_do_dod_run (interp=0x804e008, flags=4)
at src/gc/dod.c:1051
#3 0xb7d73173 in Parrot_really_destroy (interp=0x804e008, exit_code_unused=0,
arg_unused=0x0) at src/inter_create.c:316
#4 0xb7ddcbe0 in Parrot_exit (interp=0x804e008, status=0) at src/exit.c:78
#5 0x08048954 in main (argc=1, argv=0xbfa20a48) at src/main.c:65
(gdb) p p->vtable
$3 = (VTABLE *) 0x0
(gdb) x p
0x8218638: 0x00000005
That looks very suspicious.
-- c