#998: Recent parrot changes cause lots of Rakudo spectests to abort with status
11
---------------------+------------------------------------------------------
 Reporter:  moritz   |       Owner:       
     Type:  bug      |      Status:  new  
 Priority:  blocker  |   Milestone:       
Component:  core     |     Version:  1.5.0
 Severity:  release  |    Keywords:       
     Lang:           |       Patch:       
 Platform:  linux    |  
---------------------+------------------------------------------------------

Comment(by arnsholt):

 I get very similar results on my Mac (OS X 10.6.1). My test processes exit
 with status 10, after test succeed, in different files on each run. When
 running spectest I also got a few interesting errors that may be related.
 Two backtraces from a failed assertion in Parrot:


 {{{
 t/spec/S14-roles/basic....................................ok
 1/33src/call/pcc.c:607: failed assertion 'PObj_is_PMC_TEST(sig_pmc)'
 Backtrace - Obtained 24 stack frames (max trace depth is 32).
 0   libparrot.dylib                     0x0000000100937ce3
 Parrot_print_backtrace + 35
 1   libparrot.dylib                     0x0000000100937e17 Parrot_confess
 + 135
 2   libparrot.dylib                     0x000000010095612b
 Parrot_init_arg_op + 267
 3   libparrot.dylib                     0x0000000100957910 set_retval_util
 + 192
 4   libparrot.dylib                     0x0000000100957e10 set_retval +
 256
 5   libparrot.dylib                     0x000000010095cbb3
 Parrot_runops_fromc_args + 419
 6   libparrot.dylib                     0x00000001009af16f run_sub + 239
 7   libparrot.dylib                     0x00000001009af48b do_1_sub_pragma
 + 763
 8   libparrot.dylib                     0x00000001009af684 do_sub_pragmas
 + 468
 9   libparrot.dylib                     0x00000001009af79c
 PackFile_fixup_subs + 124
 10  libparrot.dylib                     0x0000000100b78df5 imcc_compile +
 1477
 11  libparrot.dylib                     0x0000000100b78ed5
 imcc_compile_pir_ex + 149
 12  libparrot.dylib                     0x0000000100982f67 pcf_P_Jt + 231
 13  libparrot.dylib                     0x0000000100a92ab8
 Parrot_NCI_invoke + 296
 14  libparrot.dylib                     0x00000001008c6d80
 Parrot_invokecc_p + 144
 15  libparrot.dylib                     0x00000001009b9664
 runops_fast_core + 180
 16  libparrot.dylib                     0x00000001009b804c runops_int +
 252
 17  libparrot.dylib                     0x000000010095b47a runops + 378
 18  libparrot.dylib                     0x000000010095b8b2 runops_args +
 706
 19  libparrot.dylib                     0x000000010095cb8c
 Parrot_runops_fromc_args + 380
 20  libparrot.dylib                     0x0000000100934cd3 Parrot_runcode
 + 323
 21  perl6                               0x000000010000159a main + 298
 22  perl6                               0x0000000100001454 start + 52
 23  ???                                 0x0000000000000002 0x0 + 2
 }}}

 The other one (in t/spec/S12-attributes/class) is identical to that one,
 except that it's missing the very last frame marked '???'. I also got an
 error from the memory allocator in t/spec/S02-builtin_data_types/declare:
 ` perl6(71707) malloc: *** error for object 0x20ec8348e5894855: pointer
 being freed was not allocated `. Finally I got a bus error in
 t/spec/S02-magicals/env: ` sh: line 1: 71774 Bus error
 ./perl6 -e "%*ENV.perl.say" > temp-ex-output..946.109072378935 `. The
 first three errors seem to be consistently reproducible.

 Running perl6 in gdb and invoking it on t/spec/S14-roles/basic.rakudo
 gives the following output:

 {{{
 [Normal test output snipped]
 not ok 33 - can compile "class does Int"# TODO class as role (RT #60176)
 # FUDGED!
 src/call/pcc.c:607: failed assertion 'PObj_is_PMC_TEST(sig_pmc)'
 [Parrot backtrace snipped]
 23  ???                                 0x0000000000000002 0x0 + 2

 Program received signal SIGABRT, Aborted.
 0x00007fff81d4aff6 in __kill ()
 (gdb) backtrace
 #0  0x00007fff81d4aff6 in __kill ()
 #1  0x00007fff81dec072 in abort ()
 #2  0x0000000100937e1c in Parrot_confess (cond=Could not find the frame
 base for "Parrot_confess".
 ) at src/exceptions.c:610
 #3  0x000000010095612b in Parrot_init_arg_op (interp=0x100f088d0,
 ctx=0x10392ea40, pc=0x104ea9e98, sti=0x7fff5fbfef80) at src/call/pcc.c:607
 #4  0x0000000100957910 in set_retval_util (interp=0x100f088d0,
 sig=0x100b7debc "P", ctx=0x10392ea40, st=0x7fff5fbfef80) at
 src/call/pcc.c:1970
 #5  0x0000000100957e10 in set_retval (interp=0x100f088d0, sig_ret=80,
 ctx=0x10392ea40) at src/call/pcc.c:2016
 #6  0x000000010095cbb3 in Parrot_runops_fromc_args (interp=0x100f088d0,
 sub=0x10393a6e0, sig=0x100b7debc "P") at src/call/ops.c:340
 #7  0x00000001009af16f in run_sub (interp=0x100f088d0,
 sub_pmc=0x10393a6e0) at src/packfile.c:688
 #8  0x00000001009af48b in do_1_sub_pragma (interp=0x100f088d0,
 sub_pmc=0x10393a6e0, action=PBC_MAIN) at src/packfile.c:780
 #9  0x00000001009af684 in do_sub_pragmas (interp=0x100f088d0,
 self=0x10a38aec0, action=PBC_MAIN, eval_pmc=0x103938b50) at
 src/packfile.c:942
 #10 0x00000001009af79c in PackFile_fixup_subs (interp=0x100f088d0,
 what=PBC_MAIN, eval=0x103938b50) at src/packfile.c:4951
 #11 0x0000000100b78df5 in imcc_compile (interp=0x100f088d0, s=0x1016f2400
 "\n.HLL \"perl6\"\n\n.namespace [\"Test\"]\n.sub \"_block2159\"
 :subid(\"302_1252881699\")\n.annotate \"line\", 0\n    .const 'Sub' $P2162
 = \"303_1252881699\" \n    capture_lex $P2162\n.annotate 'file',
 't/spec/S14-role"..., pasm_file=0, error_message=0x7fff5fbff480) at
 compilers/imcc/parser_util.c:737
 #12 0x0000000100b78ed5 in imcc_compile_pir_ex (interp=0x100f088d0,
 s=0x1016f2400 "\n.HLL \"perl6\"\n\n.namespace [\"Test\"]\n.sub
 \"_block2159\"  :subid(\"302_1252881699\")\n.annotate \"line\", 0\n
 .const 'Sub' $P2162 = \"303_1252881699\" \n    capture_lex
 $P2162\n.annotate 'file', 't/spec/S14-role"...) at
 compilers/imcc/parser_util.c:875
 #13 0x0000000100982f67 in pcf_P_Jt (interp=0x100f088d0, self=0x1010cd1e0)
 at src/nci.c:237
 #14 0x0000000100a92ab8 in Parrot_NCI_invoke (interp=0x100f088d0,
 pmc=0x1010cd1e0, next=0x104ea9e90) at nci.pmc:342
 #15 0x00000001008c6d80 in Parrot_invokecc_p (cur_opcode=0x104ea9e80,
 interp=0x100f088d0) at core.ops:433
 #16 0x00000001009b9664 in runops_fast_core (interp=0x100f088d0,
 runcore=0x100f1c3f0, pc=0x104ea9e80) at src/runcore/cores.c:777
 #17 0x00000001009b804c in runops_int (interp=0x100f088d0, offset=335938)
 at src/runcore/main.c:640
 #18 0x000000010095b47a in runops (interp=0x100f088d0, offs=335938) at
 src/call/ops.c:119
 #19 0x000000010095b8b2 in runops_args (interp=0x100f088d0,
 sub=0x104360c10, obj=0x1010ab5e0, meth_unused=0x0, sig=0x100b8c55a "vP",
 ap=0x7fff5fbff810) at src/call/ops.c:269
 #20 0x000000010095cb8c in Parrot_runops_fromc_args (interp=0x100f088d0,
 sub=0x104360c10, sig=0x100b8c55a "vP") at src/call/ops.c:338
 #21 0x0000000100934cd3 in Parrot_runcode (interp=0x100f088d0, argc=2,
 argv=0x7fff5fbff9a0) at src/embed.c:852
 #22 0x000000010000159a in main (argc=2, argv=0x7fff5fbff9a0) at
 perl6.c:282612
 }}}

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