# New Ticket Created by Geraud CONTINSOUZAS # Please include the string: [perl #59340] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=59340 >
--- osname= freebsd osvers= 7.1-prerelease arch= i386-freebsd-thread-multi-64int cc= cc --- Flags: category=core severity=medium ack=no --- I reported a problem on IRC yesterday and was prompted to file a bug. So here we go. [217]# prove t/stm/runtime.t t/stm/runtime....ok 1/5 # Failed test 'queue adapted for the library' # in t/stm/runtime.t at line 506. t/stm/runtime....NOK 4# Exited with error code: 139 # Received: # Segmentation fault (core dumped) # # Expected: # ok # # Looks like you failed 1 test of 5. [218]# gdb ./parrot GNU gdb 6.1.1 [FreeBSD] ... (gdb) r t/stm/runtime_4.pir Starting program: /usr/home/geraud/code/parrot/parrot t/stm/runtime_4.pir [New LWP 100284] [New Thread 0x8101100 (LWP 100284)] [New Thread 0x8101200 (LWP 100311)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x8101100 (LWP 100284)] 0x281c0ad7 in Parrot_dod_trace_children (interp=0x8106040, how_many=4294966630) at src/gc/dod.c:399 399 const UINTVAL bits = PObj_get_FLAGS(current) & mask; (gdb) p mask $1 = 17825792 (gdb) p current $2 = (PMC *) 0x0 (gdb) p arena_base->dod_mark_start $3 = (PMC *) 0x819cef4 (gdb) bt #0 0x281c0ad7 in Parrot_dod_trace_children (interp=0x8106040, how_many=4294966630) at src/gc/dod.c:399 #1 0x281c0a74 in trace_active_PMCs (interp=0x8106040, trace_stack=1) at src/gc/dod.c:362 #2 0x281c15a7 in Parrot_dod_ms_run (interp=0x8106040, flags=1) at src/gc/dod.c:1140 #3 0x281c16aa in Parrot_do_dod_run (interp=0x8106040, flags=1) at src/gc/dod.c:1190 #4 0x281c2f78 in more_traceable_objects (interp=0x8106040, pool=0x815e150) at src/gc/smallobject.c:163 #5 0x281c305a in gc_ms_get_free_object (interp=0x8106040, pool=0x815e150) at src/gc/smallobject.c:245 #6 0x281c6023 in new_pmc_header (interp=0x8106040, flags=0) at src/headers.c:322 #7 0x281f9f86 in get_new_pmc_header (interp=0x8106040, base_type=36, flags=0) at src/pmc.c:267 #8 0x281fa15c in pmc_new_init (interp=0x8106040, base_type=36, init=0x81fdb88) at src/pmc.c:367 #9 0x2837adec in Parrot_Hash_get_iter (interp=0x8106040, pmc=0x81fdb88) at hash.pmc:581 #10 0x28203fdd in pt_ns_clone (d=0x8106260, dest_ns=0x877cb88, s=0x8106040, source_ns=0x81fdb88) at src/thread.c:550 #11 0x28204104 in pt_ns_clone (d=0x8106260, dest_ns=0x86237b4, s=0x8106040, source_ns=0x819d7b4) at src/thread.c:566 #12 0x28204104 in pt_ns_clone (d=0x8106260, dest_ns=0x86237d0, s=0x8106040, source_ns=0x819d7d0) at src/thread.c:566 #13 0x28204228 in pt_clone_globals (d=0x8106260, s=0x8106040) at src/thread.c:599 #14 0x2832a855 in clone_interpreter (d=0x8106260, s=0x8106040, flags=127) at parrotinterpreter.pmc:137 #15 0x2832cefe in do_thread_run (interp=0x8106040, thread=0x835d6a8, clone_flags=127, sub=0x835f75c, args=0x835a014) at parrotthread.pmc:65 #16 0x2832cffe in do_thread_run_clone_default (interp=0x8106040, thread=0x835d6a8, sub=0x835f75c, args=0x835a014) at parrotthread.pmc:82 #17 0x281d937d in pcf_I_JOPxAT_ (interp=0x8106040, self=0x81fefc4) at src/nci.c:983 #18 0x28340462 in Parrot_NCI_invoke (interp=0x8106040, pmc=0x81fefc4, next=0x8382824) at nci.pmc:308 #19 0x2816d1e0 in Parrot_callmethodcc_p_sc (cur_opcode=0x8382818, interp=0x8106040) at object.ops:78 #20 0x281fab2c in runops_slow_core (interp=0x8106040, pc=0x8382818) at src/runops_cores.c:222 #21 0x281cd7d9 in runops_int (interp=0x8106040, offset=463) at src/interpreter.c:937 #22 0x281ce063 in runops (interp=0x8106040, offs=463) at src/inter_run.c:101 #23 0x281ce300 in runops_args (interp=0x8106040, sub=0x835f740, obj=0x81a1870, meth_unused=0x0, sig=0x28427e23 "vP", ap=0xbfbfe89c "$÷5\bž\005") at src/inter_run.c:236 #24 0x281ce43c in Parrot_runops_fromc_args (interp=0x8106040, sub=0x835f740, sig=0x28427e23 "vP") at src/inter_run.c:300 #25 0x281b8627 in Parrot_runcode (interp=0x8106040, argc=1, argv=0xbfbfe9ac) at src/embed.c:951 #26 0x28404622 in imcc_run_pbc (interp=0x8106040, obj_file=0, output_file=0x0, argc=1, argv=0xbfbfe9ac) at compilers/imcc/main.c:791 #27 0x28405012 in imcc_run (interp=0x8106040, sourcefile=0xbfbfeb04 "t/stm/runtime_4.pir", argc=1, argv=0xbfbfe9ac) at compilers/imcc/main.c:1079 #28 0x08048892 in main (argc=1, argv=0xbfbfe9ac) at src/main.c:61 (gdb) quit [219]# Here are the last comments from chromatic who helped me obtain a trace on IRC: <chromatic> Can you do one more thing from the frame where you p mask and p current? <chromatic> p arena_base->dod_mark_start <GeJ> (gdb) p arena_base->dod_mark_start <GeJ> $3 = (PMC *) 0x819cef4 <chromatic> Figured, but good to know. Thanks. <chromatic> There's a loop over all destroy-now PMCs in that function. <chromatic> Somehow, one of them in the linked list is NULL, and not the PMCNULL kind of NULL. <chromatic> It's not the first one in the linked list though, which is good to know. Hope this helps. I'm idling on #parrot in case additional information/testing is required. Best regards, Geraud --- Summary of my parrot 0.7.1 (r31417) configuration: configdate='Thu Sep 25 21:08:06 2008 GMT' Platform: osname=freebsd, archname=i386-freebsd-thread-multi-64int jitcapable=1, jitarchname=i386-freebsd, jitosname=FREEBSD, jitcpuarch=i386 execcapable=1 perl=perl Compiler: cc='cc', ccflags='-pipe -march=prescott -mtune=prescott -DHASATTRIBUTE_CONST -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_MALLOC -DHASATTRIBUTE_NONNULL -DHASATTRIBUTE_NORETURN -DHASATTRIBUTE_PURE -DHASATTRIBUTE_UNUSED -DHASATTRIBUTE_WARN_UNUSED_RESULT -falign-functions=16 -fvisibility=hidden -maccumulate-outgoing-args -W -Wall -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wdisabled-optimization -Wendif-labels -Wextra -Wformat -Wformat-extra-args -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch -Wmissing-braces -Wmissing-field-initializers -Wno-missing-format-attribute -Wmissing-include-dirs -Wpacked -Wparentheses -Wpointer-arith -Wreturn-type -Wsequence-point -Wno-shadow -Wsign-compare -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wtrigraphs -Wundef -Wunknown-pragmas -Wno-unused -Wvariadic-macros -Wwrite-strings -Wlarger-than-4096 -Wbad-function-cast -Wc++-compat -! Wdeclaration-after-statement -Werror=declaration-after-statement -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wnonnull -DDISABLE_GC_DEBUG=1 -DNDEBUG -g -I /usr/local/include', Linker and Libraries: ld='cc', ldflags=' -L/usr/lib -L/usr/local/lib', cc_ldflags='', libs='-lm -lcrypt -lutil -pthread -lreadline -lcrypto' Dynamic Linking: share_ext='.so', ld_share_flags='-shared -L/usr/local/lib', load_ext='.so', ld_load_flags='-shared -L/usr/local/lib' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 --- Environment: HOME =/home/geraud LANG =en_US.ISO8859-15 LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/home/geraud/bin:./bin:. PERL5LIB =/home/geraud/lib/perl SHELL =/bin/tcsh