#966: segfault in Parrot_string_mark
-------------------+--------------------------------------------------------
 Reporter:  coke   |       Owner:       
     Type:  bug    |      Status:  new  
 Priority:  major  |   Milestone:       
Component:  core   |     Version:  trunk
 Severity:  fatal  |    Keywords:       
     Lang:  tcl    |       Patch:       
 Platform:         |  
-------------------+--------------------------------------------------------
Description changed by coke:

Old description:

> With parrot r40897 and partcl r658;
>
> running parrot tcl.pbc t_tcl/obj.test (need to run "make t_tcl" first to
> checkout the test files),
>
> Looks like a loop:
>
> {{{
> #0  0xb7e4087c in Parrot_String_mark (interp=0x804f040, pmc=0xb6e4c248)
> at ./src/pmc/string.c:540
> #1  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4c248)    at
> src/gc/mark_sweep.c:472
> #2  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #3  0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e4abe0)    at ./src/pmc/fixedpmcarray.pmc:786
> #4  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4abe0)    at
> src/gc/mark_sweep.c:472
> #5  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #6  0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e4ac28)    at ./src/pmc/fixedpmcarray.pmc:786
> #7  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4ac28)    at
> src/gc/mark_sweep.c:472
> #8  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #9  0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e4ac40)
> at ./src/pmc/object.pmc:196
> #10 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4ac40)    at
> src/gc/mark_sweep.c:472
> #11 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #12 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e49338)    at ./src/pmc/fixedpmcarray.pmc:786
> #13 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49338)    at
> src/gc/mark_sweep.c:472
> #14 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #15 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e49380)    at ./src/pmc/fixedpmcarray.pmc:786
> #16 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49380)    at
> src/gc/mark_sweep.c:472
> #17 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #18 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e49398)
> at ./src/pmc/object.pmc:196
> #19 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49398)    at
> src/gc/mark_sweep.c:472
> #20 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)
> #21 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e47ac0)    at ./src/pmc/fixedpmcarray.pmc:786
> #22 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47ac0)    at
> src/gc/mark_sweep.c:472
> #23 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #24 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e47b20)    at ./src/pmc/fixedpmcarray.pmc:786
> #25 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47b20)    at
> src/gc/mark_sweep.c:472
> #26 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #27 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e47b38)
> at ./src/pmc/object.pmc:196
> #28 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47b38)    at
> src/gc/mark_sweep.c:472
> #29 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #30 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e461d0)    at ./src/pmc/fixedpmcarray.pmc:786
> #31 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e461d0)    at
> src/gc/mark_sweep.c:472
> #32 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #33 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e46218)    at ./src/pmc/fixedpmcarray.pmc:786
> #34 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e46218)    at
> src/gc/mark_sweep.c:472
> #35 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #36 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e46230)
> at ./src/pmc/object.pmc:196
> #37 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e46230)    at
> src/gc/mark_sweep.c:472
> #38 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #39 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e44790)    at ./src/pmc/fixedpmcarray.pmc:786
> #40 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e44790)    at
> src/gc/mark_sweep.c:472
> #41 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #42 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e447f0)    at ./src/pmc/fixedpmcarray.pmc:786
> #43 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e447f0)    at
> src/gc/mark_sweep.c:472
> #44 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #45 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e44808)
> at ./src/pmc/object.pmc:196
> #46 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e44808)    at
> src/gc/mark_sweep.c:472
> #47 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #48 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e430f8)    at ./src/pmc/fixedpmcarray.pmc:786
> #49 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e430f8)    at
> src/gc/mark_sweep.c:472
> #50 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #51 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e43140)    at ./src/pmc/fixedpmcarray.pmc:786
> #52 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e43140)    at
> src/gc/mark_sweep.c:472
> #53 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #54 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e43158)
> at ./src/pmc/object.pmc:196
> #55 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e43158)    at
> src/gc/mark_sweep.c:472
> #56 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #57 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e418e0)    at ./src/pmc/fixedpmcarray.pmc:786
> #58 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e418e0)    at
> src/gc/mark_sweep.c:472
> #59 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
> obj=0x804f148)    at src/gc/api.c:230
> #60 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
> pmc=0xb6e41988)    at ./src/pmc/fixedpmcarray.pmc:786
> #61 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e41988)
> .... <SNIP>
>
> }}}

New description:

 With parrot r40897 and partcl r658;

 running parrot tcl.pbc t_tcl/obj.test (need to run "make spectest" first
 to checkout the test files - you can kill it once it actually starts
 running tests.),

 Looks like a loop:

 {{{
 #0  0xb7e4087c in Parrot_String_mark (interp=0x804f040, pmc=0xb6e4c248)
 at ./src/pmc/string.c:540
 #1  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4c248)    at
 src/gc/mark_sweep.c:472
 #2  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #3  0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e4abe0)    at ./src/pmc/fixedpmcarray.pmc:786
 #4  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4abe0)    at
 src/gc/mark_sweep.c:472
 #5  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #6  0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e4ac28)    at ./src/pmc/fixedpmcarray.pmc:786
 #7  0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4ac28)    at
 src/gc/mark_sweep.c:472
 #8  0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #9  0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e4ac40)
 at ./src/pmc/object.pmc:196
 #10 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e4ac40)    at
 src/gc/mark_sweep.c:472
 #11 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #12 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e49338)    at ./src/pmc/fixedpmcarray.pmc:786
 #13 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49338)    at
 src/gc/mark_sweep.c:472
 #14 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #15 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e49380)    at ./src/pmc/fixedpmcarray.pmc:786
 #16 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49380)    at
 src/gc/mark_sweep.c:472
 #17 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #18 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e49398)
 at ./src/pmc/object.pmc:196
 #19 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e49398)    at
 src/gc/mark_sweep.c:472
 #20 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)
 #21 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e47ac0)    at ./src/pmc/fixedpmcarray.pmc:786
 #22 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47ac0)    at
 src/gc/mark_sweep.c:472
 #23 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #24 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e47b20)    at ./src/pmc/fixedpmcarray.pmc:786
 #25 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47b20)    at
 src/gc/mark_sweep.c:472
 #26 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #27 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e47b38)
 at ./src/pmc/object.pmc:196
 #28 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e47b38)    at
 src/gc/mark_sweep.c:472
 #29 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #30 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e461d0)    at ./src/pmc/fixedpmcarray.pmc:786
 #31 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e461d0)    at
 src/gc/mark_sweep.c:472
 #32 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #33 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e46218)    at ./src/pmc/fixedpmcarray.pmc:786
 #34 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e46218)    at
 src/gc/mark_sweep.c:472
 #35 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #36 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e46230)
 at ./src/pmc/object.pmc:196
 #37 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e46230)    at
 src/gc/mark_sweep.c:472
 #38 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #39 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e44790)    at ./src/pmc/fixedpmcarray.pmc:786
 #40 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e44790)    at
 src/gc/mark_sweep.c:472
 #41 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #42 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e447f0)    at ./src/pmc/fixedpmcarray.pmc:786
 #43 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e447f0)    at
 src/gc/mark_sweep.c:472
 #44 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #45 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e44808)
 at ./src/pmc/object.pmc:196
 #46 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e44808)    at
 src/gc/mark_sweep.c:472
 #47 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #48 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e430f8)    at ./src/pmc/fixedpmcarray.pmc:786
 #49 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e430f8)    at
 src/gc/mark_sweep.c:472
 #50 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #51 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e43140)    at ./src/pmc/fixedpmcarray.pmc:786
 #52 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e43140)    at
 src/gc/mark_sweep.c:472
 #53 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #54 0xb7e830ac in Parrot_Object_mark (interp=0x804f040, pmc=0xb6e43158)
 at ./src/pmc/object.pmc:196
 #55 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e43158)    at
 src/gc/mark_sweep.c:472
 #56 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #57 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e418e0)    at ./src/pmc/fixedpmcarray.pmc:786
 #58 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e418e0)    at
 src/gc/mark_sweep.c:472
 #59 0xb7d42aa7 in Parrot_gc_mark_PObj_alive (interp=0x804f040,
 obj=0x804f148)    at src/gc/api.c:230
 #60 0xb7e67ee5 in Parrot_FixedPMCArray_mark (interp=0x804f040,
 pmc=0xb6e41988)    at ./src/pmc/fixedpmcarray.pmc:786
 #61 0xb7d43a7a in mark_special (interp=0x804f040, obj=0xb6e41988)
 .... <SNIP>

 }}}

--

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/966#comment:4>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to