#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

Reply via email to