#1613: Random segfault in rakudo spectests
--------------------+-------------------------------------------------------
 Reporter:  moritz  |       Owner:       
     Type:  bug     |      Status:  new  
 Priority:  normal  |   Milestone:       
Component:  none    |     Version:  2.3.0
 Severity:  high    |    Keywords:       
     Lang:  perl6   |       Patch:       
 Platform:          |  
--------------------+-------------------------------------------------------
 For maybe two weeks now rakudo spectests segfault randomly, triggered
 without any changes in Rakudo's C code. For some specific combinations of
 Rakudo and Parrot revisions some of these segfaults are reproducible.
 Here's one from t/spec/S06-signature/unspecified.rakudo (generate that
 file by running `make t/spec/S06-signature/unspecified.t`):

 {{{
 (gdb) run t/spec/S06-signature/unspecified.rakudo
 Starting program: /nocrypt-home/moritz/source/rakudo/perl6
 t/spec/S06-signature/unspecified.rakudo
 [Thread debugging using libthread_db enabled]
 warning: Lowest section in /usr/lib/libicudata.so.36 is .hash at
 0000000000000120
 [New Thread 0x7fb9a473a6f0 (LWP 12057)]
 ok 1 - # SKIP siglist
 ok 2 - can call sub with no signature specified
 ok 3 - sub with no signature dies when given a named argument
 ok 4 - sub with no signature dies when given positional argument
 ok 5 - # SKIP siglist
 ok 6 - can call sub with positional param used
 ok 7 - sub using positional param called with no params
 ok 8 - sub using positional param called with named param
 ok 9 - # SKIP siglist
 ok 10 - can call sub with named param used
 ok 11 - named param sub is callable with no params
 ok 12 - named param sub dies with positional param
 ok 13 - # SKIP siglist
 ok 14 - can call sub with both named and positional params used

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 0x7fb9a473a6f0 (LWP 12057)]
 Parrot_str_copy (interp=<value optimized out>, s=0x4dd7328)
     at src/string/api.c:366
 366             *buffer_flags |= Buffer_shared_FLAG;
 (gdb) bt
 #0  Parrot_str_copy (interp=<value optimized out>, s=0x4dd7328)
     at src/string/api.c:366
 #1  0x00007fb9a4186cbb in Parrot_str_concat (interp=0x2862010,
 a=0x4dd7328,
     b=0x4dd72e0) at src/string/api.c:407
 #2  0x00007fb9a41a455f in Parrot_concat_s_s_s (cur_opcode=0x7fb9a185cc68,
     interp=0x4dd72e0) at src/ops/string.ops:104
 #3  0x00007fb9a41f1b3d in runops_fast_core (interp=0x2862010,
     runcore_unused=<value optimized out>, pc=0x4dd72e0)
     at src/runcore/cores.c:514
 #4  0x00007fb9a41f155d in runops_int (interp=0x2862010, offset=273809)
     at src/runcore/main.c:237
 #5  0x00007fb9a41ca251 in runops (interp=0x2862010, offs=<value optimized
 out>)
     at src/call/ops.c:113
 #6  0x00007fb9a41c5fc0 in Parrot_pcc_invoke_from_sig_object
 (interp=0x2862010,
     sub_obj=<value optimized out>, call_object=<value optimized out>)
     at src/call/pcc.c:359
 #7  0x00007fb9a41c60fb in Parrot_pcc_invoke_sub_from_c_args
 (interp=0x2862010,
     sub_obj=0x2e45220, sig=<value optimized out>) at src/call/pcc.c:87
 #8  0x0000000000400e23 in main ()
 (gdb)
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1613>
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