Bernhard Schmalhofer via RT wrote:

it looks like recent PGE changes broke 'Parrot m4'. I have boiled it down to a 20 line test cast and added it as test 4 in t/library/pge.t. This test case fails, at least under my Linux installation, with a segmentation fault.
It looks like a GC bug, kind of an ABA problem due to chunk reusage. 
OTOH I tried to clear chunk->u.date, but this did *not* help.
The remarkable thing here is: both stacks seen in the trace are Control 
stacks (used by bsr, ret, and exceptions). And that the visible PMC 
address here:
==4409==    at 0x80CB662: pobject_lives (src/dod.c:223)
==4409==    by 0x808D5FB: mark_stack (src/stacks.c:72)
.... is the same as the bsr address seen in chunk->prev.

And above chunk has the same botton, as the TOS of the stack_p

==4409==    by 0x808DCE8: stack_prepare_push (src/stack_common.c:117)
==4409==    by 0x808D960: stack_push (src/stacks.c:253)
... used here in the C<bsr_ic> opcode (visible in gdb backtrace).

Anyway, I've put in a workaround by clearing the entry_type of popped stack entries (r9678). But further investigation is welcome.
leo

Reply via email to