Ticket #1613 (closed bug: fixed)
Random segfault in rakudo spectests
Reported by: | moritz | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | none | Version: | 2.3.0 |
Severity: | high | Keywords: | |
Cc: | Language: | perl6 | |
Patch status: | Platform: |
Description
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)
Change History
Note: See
TracTickets for help on using
tickets.