On Friday 07 December 2007 05:23:39 Allison Randal wrote:
> I'm about to turn on the concurrency scheduler runloop in Parrot trunk.
> Before I do, I'd like test results on as many platforms as possible
> (especially Windows, since it doesn't use POSIX threads).
>
> To test it, edit src/inter_create.c and uncomment the two lines that
> start with 'Parrot_cx...". Then run 'make test' and let me know if it
> fails any tests that passed before.
On Ubuntu 7.10:
t/src/vtables......1/4
# Failed test (t/src/vtables.t at line 142)
# Exited with error code: [SIGNAL 139]
# Received:
#
# Expected:
# ok
# ok
# ok
$ gcc -o v4 -Iinclude -Lblib/lib/ -lparrot t/src/vtables_4.c
$ LD_LIBRARY_PATH=blib/lib gdb ./v4
ok
ok
ok
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1213491008 (LWP 8173)]
0xb7c6ee43 in pmc_new (interp=0x804a008, base_type=79) at src/pmc.c:70
70 PMC *const classobj = interp->vtables[base_type]->pmc_class;
(gdb) p base_type
$1 = 79
(gdb) bt
#0 0xb7c6ee43 in pmc_new (interp=0x804a008, base_type=79) at src/pmc.c:70
#1 0xb7c70372 in Parrot_cx_runloop_end (interp=0x804a008)
at src/scheduler.c:230
#2 0xb7c3f113 in Parrot_really_destroy (interp=0x804a008, exit_code_unused=0,
arg_unused=0x0) at src/inter_create.c:380
#3 0xb7c2ed3c in Parrot_exit (interp=0x804a008, status=0) at src/exit.c:94
#4 0x080485d2 in main ()
PMC #79 is a Task PMC.
This didn't go away on a realclean. I even moved ending the runloop to before
the full DOD when destroying an interpreter, but to no effect.
-- c