id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc,lang,patch,platform
1613,Random segfault in rakudo spectests,moritz,,"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) 
}}}",bug,closed,normal,,none,2.3.0,high,fixed,,,perl6,,
