Ticket #1081 (closed bug: wontfix)

Opened 5 years ago

Last modified 4 years ago

segfault in Parrot_HashIteratorKey_get_string

Reported by: coke Owned by: bacek
Priority: blocker Milestone:
Component: core Version: trunk
Severity: fatal Keywords:
Cc: Language:
Patch status: Platform:

Description

Parrot r41563, partcl revision 745

running t_tcl/set-old.test in a partcl checkout (after running enough of 'make spectest' to checkout the spec tests), segfaults with the following backtrace.

See also TT#1080, which has a similar start to a different backtrace.

#0  0xb7f4620b in Parrot_HashIteratorKey_get_string (interp=0x804f040,
    pmc=0xb58c990c) from /home/coke/bird/lib/libparrot.so.1.6.0
#1  0xb7f44540 in Parrot_FixedPMCArray_get_string_keyed_int (interp=0x804f040,
    pmc=0xb58b833c, key=1) from /home/coke/bird/lib/libparrot.so.1.6.0
#2  0xb7f2c8c6 in Parrot_ArrayIterator_shift_string (interp=0x804f040,
    pmc=0xb58b6578) from /home/coke/bird/lib/libparrot.so.1.6.0
#3  0xb7df1ee2 in Parrot_shift_s_p (cur_opcode=0xb6fa0098, interp=0x804f040)
    at src/ops/pmc.ops:438
#4  0xb7e7185b in runops_slow_core (interp=0x804f040, runcore=0x80e1e50,
    pc=0xb6fa0098) at src/runcore/cores.c:843
#5  0xb7e7074e in runops_int (interp=0x804f040, offset=983)
    at src/runcore/main.c:545
#6  0xb7e58012 in runops (interp=0x804f040, offs=983) at src/call/ops.c:119
#7  0xb7e5817b in runops_args (interp=0x804f040, sub=0x80baac4,
    obj=0xb58b838c, meth_unused=0x8072290, sig=0xb7fb0a4c "S",
    ap=0xbfffe834 "\310e\213\265\350\201\213\265\337\23\367\267\310\215\16\b\220\"\a\b\3") at src/call/ops.c:269
#8  0xb7e585d2 in Parrot_run_meth_fromc_args (interp=0x804f040, sub=0x80baac4,
    obj=0xb58b838c, meth=0x8072290, sig=0xb7fb0a4c "S") at src/call/ops.c:478
#9  0xb7f525f4 in Parrot_Object_get_string (interp=0x804f040, pmc=0xb58b838c)
    at ./src/pmc/object.c:3167
#10 0xb7f44540 in Parrot_FixedPMCArray_get_string_keyed_int (interp=0x804f040,
    pmc=0xb58b81e8, key=0) from /home/coke/bird/lib/libparrot.so.1.6.0
#11 0xb7f2c8c6 in Parrot_ArrayIterator_shift_string (interp=0x804f040,
    pmc=0xb58b65c8) from /home/coke/bird/lib/libparrot.so.1.6.0
#12 0xb7df1ee2 in Parrot_shift_s_p (cur_opcode=0xb6fa0098, interp=0x804f040)
    at src/ops/pmc.ops:438
#13 0xb7e7185b in runops_slow_core (interp=0x804f040, runcore=0x80e1e50,
    pc=0xb6fa0098) at src/runcore/cores.c:843
#14 0xb7e7074e in runops_int (interp=0x804f040, offset=983)
    at src/runcore/main.c:545
#15 0xb7e58012 in runops (interp=0x804f040, offs=983) at src/call/ops.c:119
#16 0xb7e5817b in runops_args (interp=0x804f040, sub=0x80baac4,
    obj=0xb58b8224, meth_unused=0x8072290, sig=0xb7fb0a4c "S",
    ap=0xbfffe9f4 "@\360\4\b(\352\377\277\306\347\356\267\310\215\16\b\220\"\a\b\3") at src/call/ops.c:269
#17 0xb7e585d2 in Parrot_run_meth_fromc_args (interp=0x804f040, sub=0x80baac4,
    obj=0xb58b8224, meth=0x8072290, sig=0xb7fb0a4c "S") at src/call/ops.c:478
#18 0xb7f525f4 in Parrot_Object_get_string (interp=0x804f040, pmc=0xb58b8224)
    at ./src/pmc/object.c:3167
#19 0xb7db4657 in Parrot_tcl_return_p (cur_opcode=0xb6fb2068, interp=0x804f040)
    at tcl.ops:172
#20 0xb7e7185b in runops_slow_core (interp=0x804f040, runcore=0x80e1e50,
    pc=0xb6fb2068) at src/runcore/cores.c:843
#21 0xb7e7074e in runops_int (interp=0x804f040, offset=24465)
    at src/runcore/main.c:545
#22 0xb7e58012 in runops (interp=0x804f040, offs=3) at src/call/ops.c:119
#23 0xb7e5817b in runops_args (interp=0x804f040, sub=0x80b95fc, obj=0x80c0718,
    meth_unused=0x0, sig=0xb7fa6d44 "vP", ap=0xbfffeb6c "\314\230\v\b")
    at src/call/ops.c:269
#24 0xb7e587d8 in Parrot_runops_fromc_args (interp=0x804f040, sub=0x80b95fc,
    sig=0xb7fa6d44 "vP") at src/call/ops.c:338
#25 0xb7e42187 in Parrot_runcode (interp=0x804f040, argc=2, argv=0xbfffece8)
    at src/embed.c:827
#26 0xb7f94046 in imcc_run_pbc (interp=0x804f040,
    sourcefile=0xbffff43d "tcl.pbc", argc=2, argv=0xbfffece8)
    at compilers/imcc/main.c:792
#27 imcc_run (interp=0x804f040, sourcefile=0xbffff43d "tcl.pbc", argc=2,
    argv=0xbfffece8) at compilers/imcc/main.c:1075
#28 0x08048985 in main (argc=2, argv=0xbfffece8) at src/main.c:60

Change History

Changed 5 years ago by coke

Segfault is gone; leaving case open for bacek to find original cause (he just removed the symptom.)

Changed 5 years ago by coke

  • component changed from none to core

Changed 5 years ago by whiteknight

  • owner set to bacek

Can we get a ruling on this ticket? If the segfault no longer appears and this was 7 weeks ago, I suggest we should close it (or provide more specific information about what is still a problem)

Changed 5 years ago by bacek

Problem is still exists. I just wallpapered symptoms.

Main thing is - HIK sometimes created without initializing attributes properly. HIK.get_pmc contains next code to handle it

        /* TT#1080 & TT#1081 Wallpapering problem with NULL attributes */
        if (!attrs->parrot_hash || !attrs->bucket)
            return PMCNULL;

But we shouldn't have HIK without attributes in first place.

Changed 4 years ago by bacek

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

Hello.

After recent work on GCs in gc_massacre branch I discovered that current mark&sweep GC doesn't actually trace C stack. Which is a root problem of some shenanibugs.

Closing ticket as "wantfix".

-- Bacek

Note: See TracTickets for help on using tickets.