Ticket #960 (closed bug: fixed)

Opened 5 years ago

Last modified 5 years ago

segfaults in Parrot_String_mark

Reported by: coke Owned by:
Priority: critical Milestone:
Component: GC Version: trunk
Severity: fatal Keywords:
Cc: Language:
Patch status: Platform:

Description (last modified by coke) (diff)

With parrot: r40853, and partcl r648, I'm seeing a lot of segfaults with a backtrace resembling this one:

#0  0xb7ec981c in Parrot_String_mark (interp=0x804f040, pmc=0xb6b0f040)
    at ./src/pmc/string.pmc:77
#1  0xb7dcca7a in mark_special (interp=0x804f040, obj=0xb6b0f040)
    at src/gc/mark_sweep.c:472
#2  0xb7dcbaa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040, obj=0x804f148)
    at src/gc/api.c:230
#3  0xb7dcd94a in trace_system_areas (interp=0x804f040) at src/gc/system.c:457
#4  0xb7dcd648 in Parrot_gc_trace_root (interp=0x804f040, trace=GC_TRACE_FULL)
    at src/gc/mark_sweep.c:244
#5  0xb7dcc6c4 in gc_ms_mark_and_sweep (interp=0x804f040,
    flags=<value optimized out>) at src/gc/gc_ms.c:255
#6  0xb7dcb3fa in Parrot_gc_mark_and_sweep (interp=0x804f040, flags=1)
    at src/gc/api.c:792
#7  0xb7dcc358 in gc_ms_more_traceable_objects (interp=0x804f040,
    pool=0x806f300) at src/gc/gc_ms.c:344
#8  0xb7dcc51d in gc_ms_get_free_object (interp=0x804f040, pool=0x806f300)
    at src/gc/gc_ms.c:409
#9  0xb7dcb83b in Parrot_gc_new_pmc_header (interp=0x804f040, flags=0)
    at src/gc/api.c:329
#10 0xb7debce7 in get_new_pmc_header (interp=0x804f040, base_type=82,
    flags=134541640) at src/pmc.c:472
#11 0xb7dec000 in pmc_new (interp=0x804f040, base_type=68420096)
    at src/pmc.c:169
#12 0xb7f182fe in Parrot_PMCProxy_instantiate (interp=0x804f040, 
    pmc=0x8264710, init=0x4140200) at ./src/pmc/pmcproxy.pmc:199
#13 0xb7d9657e in Parrot_new_p_sc (cur_opcode=0xb6c5deb8, interp=0x804f040)
    at src/ops/pmc.ops:57
#14 0xb7dedd52 in runops_slow_core (interp=0x804f040, pc=0xb6c5deb8)
    at src/runcore/cores.c:462
#15 0xb7decfef in runops_int (interp=0x804f040, offset=7014)
    at src/runcore/main.c:987
#16 0xb7dd53c2 in runops (interp=0x804f040, offs=7014) at src/call/ops.c:119
#17 0xb7dd1515 in Parrot_pcc_invoke_from_sig_object (interp=0x804f040, 
    sub_obj=0x81ae1a0, sig_obj=0xb6b08218) at src/call/pcc.c:3025
#18 0xb7ee2f90 in Parrot_Class_instantiate (interp=0x804f040, pmc=0x8157ce8, 
    init=0x80b0bd0) at ./src/pmc/class.pmc:350
#19 0xb7d94dbe in Parrot_new_p_pc (cur_opcode=0xb6c5e818, interp=0x804f040)
    at src/ops/pmc.ops:93
#20 0xb7dedd52 in runops_slow_core (interp=0x804f040, pc=0xb6c5e818)
    at src/runcore/cores.c:462
#21 0xb7decfef in runops_int (interp=0x804f040, offset=4220)
    at src/runcore/main.c:987
#22 0xb7dd53c2 in runops (interp=0x804f040, offs=4220) at src/call/ops.c:119
#23 0xb7dd1515 in Parrot_pcc_invoke_from_sig_object (interp=0x804f040, 
    sub_obj=0x8105570, sig_obj=0xb6b08380) at src/call/pcc.c:3025
#24 0xb7ee2f90 in Parrot_Class_instantiate (interp=0x804f040, pmc=0x8155c90, 
    init=0x80b0bd0) at ./src/pmc/class.pmc:350
#25 0xb7d94dbe in Parrot_new_p_pc (cur_opcode=0xb6f6f220, interp=0x804f040)
    at src/ops/pmc.ops:93
#26 0xb7dedd52 in runops_slow_core (interp=0x804f040, pc=0xb6f6f220)
    at src/runcore/cores.c:462
#27 0xb7decfef in runops_int (interp=0x804f040, offset=7406)
    at src/runcore/main.c:987
#28 0xb7dd53c2 in runops (interp=0x804f040, offs=3) at src/call/ops.c:119
#29 0xb7dd5549 in runops_args (interp=0x804f040, sub=0x80c29b8, obj=0x80b0bd0, 
    meth_unused=0x0, sig=0xb7f51f75 "vP", ap=0xbfecb09c "\030-\f\b")
    at src/call/ops.c:269
#30 0xb7dd5cf8 in Parrot_runops_fromc_args (interp=0x804f040, sub=0x80c29b8, 
    sig=0xb7f51f75 "vP") at src/call/ops.c:338
#31 0xb7dbf288 in Parrot_runcode (interp=0x804f040, argc=2, argv=0xbfecb208)
    at src/embed.c:983
#32 0xb7f3ee4f in imcc_run (interp=0x804f040, sourcefile=0xbfecc46f "tcl.pbc", 
    argc=2, argv=0xbfecb208) at compilers/imcc/main.c:801
#33 0x08048955 in main (argc=2, argv=0xbfecb208) at src/main.c:60

This particular backtrace comes from "parrot tcl.pbc t_tcl/basic.test", and occurs for me on feather with an optimized parrot after running test 'basic-46.5'.

Change History

Changed 5 years ago by coke

  • description modified (diff)

Changed 5 years ago by coke

  • status changed from new to closed
  • resolution set to fixed

NotFound++ appears to have resolved this particular segfault in r40893-r40897.

I can no longer duplicate this segfault, even with --gc-debug.

Note: See TracTickets for help on using tickets.