Ticket #1612 (closed bug: fixed)

Opened 4 years ago

Last modified 4 years ago

parrot change between r46273 and r46316 cause Rakudo regression

Reported by: moritz Owned by:
Priority: normal Milestone:
Component: none Version: 2.3.0
Severity: high Keywords:
Cc: Language: perl6
Patch status: Platform:

Description

Rakudo 60c23d95b91177a85fc4775951654a124f807e21 on Parrot r46316:

$ ./perl6 t/spec/S02-magicals/pid.t 
1..1
# ./perl6 -e "say $*PID"> temp-ex-output.11929.408
Could not find sub &PID
current instr.: '_block14' pc 29 (EVAL_1:0)
called from Sub '!YOU_ARE_HERE' pc 377587 (src/gen/core.pir:29902)
called from Sub '!UNIT_START' pc 1363 (src/glue/run.pir:21)
called from Sub 'perl6;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
called from Sub 'perl6;PCT;HLLCompiler;command_line' pc 1504 (compilers/pct/src/PCT/HLLCompiler.pir:801)
called from Sub 'perl6;Perl6;Compiler;main' pc -1 ((unknown file):-1)
Segmentation fault

The backtrace is:

(gdb) bt
#0  Parrot_str_copy (interp=<value optimized out>, s=0x5955dd8)
    at src/string/api.c:366
#1  0x00007f2a60272cbb in Parrot_str_concat (interp=0x3470010, a=0x5955dd8, 
    b=0x5955d90) at src/string/api.c:407
#2  0x00007f2a603408ed in Parrot_FileHandle_nci_readall (interp=0x3470010, 
    _self=<value optimized out>) at ./src/pmc/filehandle.pmc:478
#3  0x00007f2a603018a1 in Parrot_NCI_invoke (interp=0x3470010, 
    _self=0x34f8e00, next=0x7f2a5dacbea8) at ./src/pmc/nci.pmc:360
#4  0x00007f2a602ddb3d in runops_fast_core (interp=0x3470010, 
    runcore_unused=<value optimized out>, pc=0x5955d48)
    at src/runcore/cores.c:514
#5  0x00007f2a602dd55d in runops_int (interp=0x3470010, offset=273809)
    at src/runcore/main.c:237
#6  0x00007f2a602b6251 in runops (interp=0x3470010, offs=<value optimized out>)
    at src/call/ops.c:113
#7  0x00007f2a602b1fc0 in Parrot_pcc_invoke_from_sig_object (interp=0x3470010, 
    sub_obj=<value optimized out>, call_object=<value optimized out>)
    at src/call/pcc.c:359
#8  0x00007f2a602b20fb in Parrot_pcc_invoke_sub_from_c_args (interp=0x3470010, 
    sub_obj=0x3a53220, sig=<value optimized out>) at src/call/pcc.c:87
#9  0x0000000000400e23 in main ()

On parrot r46273 this test passed.

Change History

Changed 4 years ago by coke

I was able to duplicate the segfault in the given revision on darwin 386.

But I just tried it against parot r46322, and got this instead:

1..1
# ./perl6 -e "say $*PID"> temp-ex-output.0.136
Could not find sub &PID
current instr.: '_block14' pc 29 (EVAL_1:0)
called from Sub '!YOU_ARE_HERE' pc 377587 (src/gen/core.pir:29902)
called from Sub '!UNIT_START' pc 1363 (src/glue/run.pir:21)
called from Sub 'perl6;PCT;HLLCompiler;eval' pc -1 ((unknown file):-1)
called from Sub 'perl6;PCT;HLLCompiler;command_line' pc 1504 (compilers/pct/src/PCT/HLLCompiler.pir:801)
called from Sub 'perl6;Perl6;Compiler;main' pc -1 ((unknown file):-1)
ok 1 - My PID differs from the child pid (0 != )

Changed 4 years ago by bacek

Moritz,

can you try to reproduce it? We have some fixes for strings since ticket was created.

-- Bacek

Changed 4 years ago by moritz

  • status changed from new to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.