#1142: test 12 of t/pmc/eval.t fails in testr (passes in other runcores)
---------------------+------------------------------------------------------
 Reporter:  mikehh   |        Owner:          
     Type:  bug      |       Status:  reopened
 Priority:  normal   |    Milestone:          
Component:  testing  |      Version:  trunk   
 Severity:  medium   |   Resolution:          
 Keywords:           |         Lang:          
    Patch:           |     Platform:          
---------------------+------------------------------------------------------

Comment(by mikehh):

 after running ./parrot t/pmc/eval_11.pbc to create the file

 with the gcc build (with --optimize) (r43600) I get:
 {{{
 ./parrot -t t/pmc/eval_12.pbc
      0 set S1, "/tmp/VzIm7O67dC"
 S1="(null)"
      3 stat I0, S1, 1                                        I0=0
 S1="/tmp/VzIm7O67dC"
      7 open P1, S1, "r"                                        P1=PMCNULL
 S1="/tmp/VzIm7O67dC"
     11 read S0, P1, I0                                        S0="(null)"
 P1=FileHandle=PMC(0x1b69ee8) I0=1488
     15 close P1
 P1=FileHandle=PMC(0x1b69ee8)
     17 thaw P0, S0                                        P0=PMCNULL
 
S0="\x{fe}PBC\r\n\x{1a}\n\b\x{0}\x{0}\x{2}\x{0}\x{0}\x{6}\x{0}\x{0}\x{0}\x{0}\x{0}"
     20 set_args PC4
     22 get_results PC4
     24 invokecc P0
 P0=Eval=PMC(0x1b69f60)
      0 print "hello from foo_1\n"
        GC mark
        GC collect
 hello from foo_1
 Segmentation fault

 }}}

 with the g++ build (with --optimize) (r43599) I get:
 {{{
 ./parrot -t t/pmc/eval_12.pbc
      0 set S1, "/tmp/VZrgPfJ8Hg"
 S1="(null)"
      3 stat I0, S1, 1                                        I0=0
 S1="/tmp/VZrgPfJ8Hg"
      7 open P1, S1, "r"                                        P1=PMCNULL
 S1="/tmp/VZrgPfJ8Hg"
     11 read S0, P1, I0                                        S0="(null)"
 P1=FileHandle=PMC(0xf8cce0) I0=1488
     15 close P1
 P1=FileHandle=PMC(0xf8cce0)
     17 thaw P0, S0                                        P0=PMCNULL
 
S0="\x{fe}PBC\r\n\x{1a}\n\b\x{0}\x{0}\x{2}\x{0}\x{0}\x{6}\x{0}\x{0}\x{0}\x{0}\x{0}"
     20 set_args PC4
     22 get_results PC4
     24 invokecc P0
 P0=Eval=PMC(0xf8cd58)
      0 print "hello from foo_1\n"
 hello from foo_1
      2 set_returns PC1
      4 returncc
     26 get_global P0, "foo_1"
 P0=Eval=PMC(0xf8cd58)
     29 set_args PC4
     31 get_results PC4
     33 invokecc P0
 P0=Sub=PMC(0xf8ce70 pc:0)
      0 print "hello from foo_1\n"
 hello from foo_1
      2 set_returns PC1
      4 returncc
     35 set_returns PC4
     37 returncc
 FileHandle objects (like stdout and stderr)are about to be closed, so
 clearing trace flags.

 }}}


 so it looks to me that the Segmentation fault is generated by GC mark/GC
 collect

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