I was able to reproduce the identical deadlock on Mac OS 10.5.1, though
it appears to occur only ever 2 or three times that that particular test
is run.  I caught it in gdb, and get the info below. I'm new to the
internals of Parrot, so other than seeming like a race condition,
nothing jumped out at me. Let me know if I can provide more information.

-Tupshin

(gdb) run "-D40 -gc-debug" /usr/src/parrot/t/stm/basic_mt_2.pir
Starting program: /usr/src/parrot/parrot "-D40 -gc-debug"
/usr/src/parrot/t/stm/basic_mt_2.pir
^C
Program received signal SIGINT, Interrupt.
0x9681aace in __semwait_signal ()
(gdb) bt
#0  0x9681aace in __semwait_signal ()
#1  0x96845306 in _pthread_cond_wait ()
#2  0x96844ced in pthread_cond_wait$UNIX2003 ()
#3  0x000b9a66 in pt_gc_wait_for_stage (interp=0x500180,
from_stage=THREAD_GC_STAGE_NONE, to_stage=THREAD_GC_STAGE_MARK) at
src/thread.c:987
#4  0x000ba93e in pt_DOD_start_mark (interp=0x500180) at src/thread.c:1573
#5  0x0006f024 in Parrot_dod_ms_run (interp=0x500180, flags=1) at
src/gc/dod.c:1126
#6  0x000b9de7 in pt_suspend_self_for_gc (interp=0x500180) at
src/thread.c:1167
#7  0x000b8b41 in pt_thread_wait (interp=0x500180) at src/thread.c:395
#8  0x000b9f10 in pt_thread_join (parent=0x500180, tid=2) at
src/thread.c:1207
#9  0x001e184a in Parrot_ParrotRunningThread_nci_join (interp=0x500180,
pmc=0x73cdf0) at parrotrunningthread.pmc:100
#10 0x0008fa06 in pcf_P_JO (interp=0x500180, self=0x6e3060) at
src/nci.c:3781
#11 0x00165f18 in Parrot_NCI_invoke ()
#12 0x0001af64 in Parrot_callmethodcc_p_sc (cur_opcode=0x51cae4,
interp=0x500180) at object.ops:70
#13 0x000b01bf in runops_slow_core (interp=0x500180, pc=0x51cae4) at
src/runops_cores.c:211
#14 0x0007b4e3 in runops_int (interp=0x500180, offset=52) at
src/interpreter.c:876
#15 0x0007bfe7 in runops (interp=0x500180, offs=52) at src/inter_run.c:104
#16 0x0007c27a in runops_args (interp=0x500180, sub=0x6e04b0,
obj=0x82e048, meth_unused=0x0, sig=0x257832 "vP", ap=0xbffff43c
"?\004n") at src/inter_run.c:230
#17 0x0007c3b9 in Parrot_runops_fromc_args (interp=0x500180,
sub=0x6e04b0, sig=0x257832 "vP") at src/inter_run.c:299
#18 0x0006a3ec in Parrot_runcode (interp=0x500180, argc=1,
argv=0xbffff554) at src/embed.c:886
#19 0x0021fa19 in imcc_run_pbc (interp=0x500180, obj_file=0,
output_file=0x0, argc=1, argv=0xbffff554) at compilers/imcc/main.c:788
#20 0x002204bd in imcc_run (interp=0x500180, sourcefile=0xbffff62a
"/usr/src/parrot/t/stm/basic_mt_2.pir", argc=1, argv=0xbffff554) at
compilers/imcc/main.c:1069
#21 0x00001dee in main (argc=1, argv=0xbffff554) at src/main.c:62


Reply via email to