#1393: t/compilers/pge/pge_examples.t: PASS by itself, FAIL during 'make smoke'
---------------------+------------------------------------------------------
Reporter: jkeenan | Owner:
Type: bug | Status: new
Priority: major | Milestone:
Component: testing | Version: 1.9.0
Severity: high | Keywords:
Lang: | Patch:
Platform: |
---------------------+------------------------------------------------------
Comment(by lithos):
Hello! I think I tracked down the cause of this bug:
In short: A RetContinuation PMC frees itself but there is still at least
one pointer to it from a CallContext PMC. The context then tries to mark
the RetContinuation (that is already on the free list) and thus triggers
an abort.
The culprit: src/pmc/retcontinuation.pmc:85:
{{{
/* recycle this PMC and make sure it doesn't get marked */
if (!PMC_IS_NULL(from_ctx))
Parrot_pcc_set_continuation(interp, from_ctx, NULL);
Parrot_gc_free_pmc_header(interp, SELF);
}}}
I'll attach a patch with the debug prints I used plus the log output.
The log shows that the continuation seems to be propagated from one
context to another context. So the RetContinuation PMC is wrong in
assuming
that it knows the single pointer to itself.
Hope this helps to fix this issue!
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1393#comment:17>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets