Last active
October 24, 2021 20:34
-
-
Save dogbert17/d3fee0f081bb30be355108854faa2f71 to your computer and use it in GitHub Desktop.
Flapper in t/spec/S12-methods/lastcall.t
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Notes: nursery is set to 20k. It seems as if adding MVM_SPESH_OSR_DISABLE=1 makes the problem go away. | |
dogbert@dogbert-VirtualBox:~/repos/rakudo$ MVM_SPESH_NODELAY=1 MVM_SPESH_BLOCKING=1 ./rakudo-gdb-m -Ilib --ll-exception t/spec/S12-methods/lastcall.t | |
================================================================================================ | |
This is Rakudo running in the debugger, which often allows the user to generate useful back- | |
traces to debug or report issues in Rakudo, the MoarVM backend or the currently running code. | |
This Rakudo version is 2021.09.282.g.6.d.45.da.84.c built on MoarVM version 2021.09.676.g.8.c.7.b.734.d.8, | |
running on linuxmint (20.Ulyana) / linux | |
Type `bt full` to generate a backtrace if applicable, type `q` to quit or `help` for help. | |
------------------------------------------------------------------------------------------------ | |
Reading symbols from /home/dogbert/repos/rakudo/install/bin/moar... | |
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=/home/dogbert/repos/rakudo/rakudo-gdb-m --libpath=/home/dogbert/repos/rakudo --libpath=/home/dogbert/repos/rakudo/blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm -Ilib --ll-exception t/spec/S12-methods/lastcall.t | |
[Thread debugging using libthread_db enabled] | |
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". | |
[New Thread 0x7ffff7208700 (LWP 645189)] | |
1..7 | |
ok 1 - no lastcall, so we defer up the inheritance tree | |
ok 2 - sanity test for clearing | |
ok 3 - lastcall means nextsame causes Nil return of method | |
ok 4 - lastcall meant nextsame failed, no deferal happened | |
Can only use manipulate a capture known in this dispatch | |
at gen/moar/BOOTSTRAP/v6c.nqp:5248 (/home/dogbert/repos/rakudo/install/share/perl6/lib/Perl6/BOOTSTRAP/v6c.moarvm:) | |
from SETTING::src/core.c/control.pm6:160 (/home/dogbert/repos/rakudo/blib/CORE.c.setting.moarvm:callsame) | |
from t/spec/S12-methods/lastcall.t:39 (<ephemeral file>:doit) | |
from t/spec/S12-methods/lastcall.t:46 (<ephemeral file>:) | |
from t/spec/S12-methods/lastcall.t:38 (<ephemeral file>:<unit>) | |
from t/spec/S12-methods/lastcall.t:1 (<ephemeral file>:<unit-outer>) | |
from gen/moar/stage2/NQPHLL.nqp:1943 (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:eval) | |
from gen/moar/stage2/NQPHLL.nqp:2148 (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:evalfiles) | |
from gen/moar/stage2/NQPHLL.nqp:2108 (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_eval) | |
from gen/moar/Compiler.nqp:111 (/home/dogbert/repos/rakudo/blib/Perl6/Compiler.moarvm:command_eval) | |
from gen/moar/stage2/NQPHLL.nqp:2033 (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_line) | |
from gen/moar/rakudo.nqp:127 (/home/dogbert/repos/rakudo/perl6.moarvm:MAIN) | |
from gen/moar/rakudo.nqp:1 (/home/dogbert/repos/rakudo/perl6.moarvm:<mainline>) | |
from <unknown>:1 (/home/dogbert/repos/rakudo/perl6.moarvm:<main>) | |
from <unknown>:1 (/home/dogbert/repos/rakudo/perl6.moarvm:<entry>) | |
[Thread 0x7ffff7208700 (LWP 645189) exited] | |
[Inferior 1 (process 645185) exited with code 01] | |
(gdb) b src/disp/program.c:677 | |
Breakpoint 1 at 0x7ffff790e210: file src/disp/program.c, line 677. | |
(gdb) r | |
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=/home/dogbert/repos/rakudo/rakudo-gdb-m --libpath=/home/dogbert/repos/rakudo --libpath=/home/dogbert/repos/rakudo/blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm -Ilib --ll-exception t/spec/S12-methods/lastcall.t | |
[Thread debugging using libthread_db enabled] | |
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". | |
[New Thread 0x7ffff7208700 (LWP 645191)] | |
1..7 | |
ok 1 - no lastcall, so we defer up the inheritance tree | |
ok 2 - sanity test for clearing | |
ok 3 - lastcall means nextsame causes Nil return of method | |
ok 4 - lastcall meant nextsame failed, no deferal happened | |
Thread 1 "moar" hit Breakpoint 1, calculate_capture_path (tc=0x55555555ae30, record=0x7ffff722c060, capture=0x5555556b22d8, p=0x7fffffffbcc0) at src/disp/program.c:677 | |
677 MVM_VECTOR_DESTROY(p->path); | |
(gdb) bt | |
#0 calculate_capture_path (tc=0x55555555ae30, record=0x7ffff722c060, capture=0x5555556b22d8, p=0x7fffffffbcc0) at src/disp/program.c:677 | |
#1 0x00007ffff790f39d in MVM_disp_program_record_track_arg (tc=0x55555555ae30, capture=0x5555556b22d8, index=0) at src/disp/program.c:889 | |
#2 0x00007ffff791d647 in dispatcher_track_arg_impl (tc=0x55555555ae30, arg_info=...) at src/disp/syscall.c:52 | |
#3 0x00007ffff7919adc in MVM_disp_program_run (tc=0x55555555ae30, dp=0x555559560bc0, record=0x7ffff722c280, spesh_cid=19969, bytecode_offset=128, dp_index=0) at src/disp/program.c:3229 | |
#4 0x00007ffff790b3bc in dispatch_monomorphic (tc=0x55555555ae30, entry_ptr=0x555559564030, seen=0x55555955aad0, id=0x555557953930, callsite=0x55555564fd30, arg_indices=0x7ffff470c2f8, | |
source=0x555555b43120, sf=0x5555578b2e30, bytecode_offset=128) at src/disp/inline_cache.c:107 | |
#5 0x00007ffff780e603 in MVM_interp_run (tc=0x55555555ae30, initial_invoke=0x7ffff79b9dca <toplevel_initial_invoke>, invoke_data=0x555555621150, outer_runloop=0x0) at src/core/interp.c:5433 | |
#6 0x00007ffff79b9f30 in MVM_vm_run_file (instance=0x55555555a2a0, filename=0x7fffffffe1ed "/home/dogbert/repos/rakudo/perl6.moarvm") at src/moar.c:505 | |
#7 0x0000555555555c97 in main (argc=9, argv=0x7fffffffdd68) at src/main.c:307 | |
(gdb) l | |
672 if (record->rec.resume_kind != MVMDispProgramRecordingResumeNone) { | |
673 MVMuint32 cur = MVM_VECTOR_ELEMS(record->rec.resumptions) - 1; | |
674 if (find_capture(tc, &(record->rec.resumptions[cur].initial_resume_capture), capture, p)) | |
675 return; | |
676 } | |
677 MVM_VECTOR_DESTROY(p->path); | |
678 MVM_exception_throw_adhoc(tc, | |
679 "Can only use manipulate a capture known in this dispatch"); | |
680 } | |
681 } | |
(gdb) p record->rec.resume_kind | |
$1 = MVMDispProgramRecordingResumeCaller | |
(gdb) info threads | |
Id Target Id Frame | |
* 1 Thread 0x7ffff724c440 (LWP 645190) "moar" calculate_capture_path (tc=0x55555555ae30, record=0x7ffff722c060, capture=0x5555556b22d8, p=0x7fffffffbcc0) at src/disp/program.c:677 | |
2 Thread 0x7ffff7208700 (LWP 645191) "spesh optimizer" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555615664) at ../sysdeps/nptl/futex-internal.h:183 | |
(gdb) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment