#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 was not able to reproduce jkeenan's test FAIL out-of-the-box. However,
 if I add a mark-and-sweep call directly after the self-freeing call in
 src/pmc/retcontinuation.pmc like this (in order to immediately trigger
 bugs caused by left-over pointer to the RetContinuation):

 {{{
         Parrot_gc_free_pmc_header(interp, SELF);
         Parrot_gc_mark_and_sweep(interp, 0);
 }}}

 then I get the exact same assertion failure after test 60.

 The continuation is propagated to a second context in the
 Parrot_tailcallmethod_p_sc opcode in this case. The continuation
 is not detached in this case because Parrot_pcc_do_run_ops returned 0.

 Output by my debug prints directly before the assertion failure:

 {{{
 tailcallmethod PMC STR 1 0
 tailcallmethod PMC STR invoking with continuation 0x8d38d44
 2515: ./src/pmc/sub.pmc:401: setting continuation 0x8d38d44 in context
 0x8db7c54
 }}}

 where the "1" means it is a RetContinuation PMC and the "0" is the return
 value of Parrot_pcc_do_run_ops.

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1393#comment:24>
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