Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created March 30, 2018 15:45
Show Gist options
  • Save dogbert17/41425fc51b491daa286f54eac9d42d1a to your computer and use it in GitHub Desktop.
Save dogbert17/41425fc51b491daa286f54eac9d42d1a to your computer and use it in GitHub Desktop.
Panic when running t/spec/S32-exceptions/misc.t under stress, i.e. small nursery
./perl6-gdb-m t/spec/S32-exceptions/misc.rakudo.moar
...
(gdb) r
Starting program: /home/dilbert/repos/rakudo/install/bin/moar --execname=./perl6-gdb-m --libpath=. --libpath=blib --libpath=/home/dilbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dilbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dilbert/repos/rakudo/install/share/nqp/lib /home/dilbert/repos/rakudo/perl6.moarvm --nqp-lib=blib t/spec/S32-exceptions/misc.rakudo.moar
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff6768700 (LWP 6747)]
1..450
1..3
ok 1 - '42 +' died
ok 2 - right exception type (Exception)
...
ok 208 - did we throws-like X::Str::Trans::InvalidArg?
1..4
[Switching to Thread 0x7ffff6768700 (LWP 6747)]
Thread 2 "moar" hit Breakpoint 1, MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff77840a0 "Must not GC when in the specializer/JIT\n") at src/core/exceptions.c:827
827 void MVM_panic(MVMint32 exitCode, const char *messageFormat, ...) {
(gdb) bt
#0 MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff77840a0 "Must not GC when in the specializer/JIT\n") at src/core/exceptions.c:827
#1 0x00007ffff7670adb in run_gc (tc=tc@entry=0x68e0a0, what_to_do=what_to_do@entry=1 '\001') at src/gc/orchestrate.c:388
#2 0x00007ffff7670c57 in MVM_gc_enter_from_interrupt (tc=tc@entry=0x68e0a0) at src/gc/orchestrate.c:611
#3 0x00007ffff7670f0b in MVM_gc_mark_thread_blocked (tc=tc@entry=0x68e0a0) at src/gc/orchestrate.c:290
#4 0x00007ffff76b1569 in MVM_reentrantmutex_lock (tc=tc@entry=0x68e0a0, rm=<optimized out>) at src/6model/reprs/ReentrantMutex.c:136
#5 0x00007ffff76c6f49 in MVM_serialization_demand_object (tc=tc@entry=0x68e0a0, sc=<optimized out>, idx=4) at src/6model/serialization.c:2743
#6 0x00007ffff76c1cd8 in MVM_sc_get_object (tc=tc@entry=0x68e0a0, sc=<optimized out>, idx=idx@entry=4) at src/6model/sc.c:193
#7 0x00007ffff76e47b1 in fix_wval (inlinee=0x7ffff04bee60, to_fix=0x7ffff07cf618, to_fix=0x7ffff07cf618, inliner=0x7ffff1851cd0, tc=0x7ffff07cfc88) at src/spesh/inline.c:227
#8 merge_graph (tc=tc@entry=0x68e0a0, inliner=inliner@entry=0x7ffff1851cd0, inlinee=inlinee@entry=0x7ffff04bee60, inlinee_sf=inlinee_sf@entry=0x12293c8, invoke_bb=invoke_bb@entry=0x7ffff071bfc8,
invoke_ins=invoke_ins@entry=0x7ffff07182f8, code_ref_reg=..., inline_boundary_handler=<optimized out>) at src/spesh/inline.c:429
#9 0x00007ffff76e50a9 in MVM_spesh_inline (tc=tc@entry=0x68e0a0, inliner=inliner@entry=0x7ffff1851cd0, call_info=call_info@entry=0x7ffff6767990, invoke_bb=invoke_bb@entry=0x7ffff071bfc8,
invoke_ins=invoke_ins@entry=0x7ffff07182f8, inlinee=inlinee@entry=0x7ffff04bee60, inlinee_sf=0x12293c8, code_ref_reg=...) at src/spesh/inline.c:943
#10 0x00007ffff76de67e in optimize_call (tc=tc@entry=0x68e0a0, g=g@entry=0x7ffff1851cd0, bb=bb@entry=0x7ffff071bfc8, ins=ins@entry=0x7ffff07182f8, p=p@entry=0x7ffff07c4e50, callee_idx=callee_idx@entry=1,
arg_info=0x7ffff6767990) at src/spesh/optimize.c:1715
#11 0x00007ffff76df90e in optimize_bb_switch (tc=tc@entry=0x68e0a0, g=g@entry=0x7ffff1851cd0, bb=bb@entry=0x7ffff071bfc8, p=p@entry=0x7ffff07c4e50) at src/spesh/optimize.c:2129
#12 0x00007ffff76e0e53 in optimize_bb (p=0x7ffff07c4e50, bb=0x7ffff071bfc8, g=0x7ffff1851cd0, tc=0x68e0a0) at src/spesh/optimize.c:2327
#13 optimize_bb (p=0x7ffff07c4e50, bb=0x7ffff071b848, g=0x7ffff1851cd0, tc=0x68e0a0) at src/spesh/optimize.c:2331
#14 optimize_bb (p=0x7ffff07c4e50, bb=0x7ffff071b668, g=0x7ffff1851cd0, tc=0x68e0a0) at src/spesh/optimize.c:2331
#15 optimize_bb (tc=0x68e0a0, g=0x7ffff1851cd0, bb=0x7ffff071b428, p=0x7ffff07c4e50) at src/spesh/optimize.c:2331
#16 0x00007ffff76e11f2 in optimize_bb (p=0x7ffff07c4e50, bb=0x7ffff071ab88, g=0x7ffff1851cd0, tc=0x68e0a0) at src/spesh/optimize.c:2331
#17 MVM_spesh_optimize (tc=tc@entry=0x68e0a0, g=g@entry=0x7ffff1851cd0, p=p@entry=0x7ffff07c4e50) at src/spesh/optimize.c:2579
#18 0x00007ffff76d81cd in MVM_spesh_candidate_add (tc=tc@entry=0x68e0a0, p=0x7ffff07c4e50) at src/spesh/candidate.c:62
#19 0x00007ffff76e68e5 in worker (tc=0x68e0a0, callsite=<optimized out>, args=<optimized out>) at src/spesh/worker.c:16
#20 0x00007ffff7655b51 in thread_initial_invoke (tc=0x68e0a0, data=<optimized out>) at src/core/threads.c:59
#21 0x00007ffff762ec8e in MVM_interp_run (tc=0x1, tc@entry=0x68e0a0, initial_invoke=0x0, invoke_data=0x604098, invoke_data@entry=0x69f800) at src/core/interp.c:93
#22 0x00007ffff7655bd6 in start_thread (data=0x69f800) at src/core/threads.c:87
#23 0x00007ffff6b7c6ba in start_thread (arg=0x7ffff6768700) at pthread_create.c:333
#24 0x00007ffff71a241d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) info threads
Id Target Id Frame
1 Thread 0x7ffff7fd9700 (LWP 6746) "moar" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
* 2 Thread 0x7ffff6768700 (LWP 6747) "moar" MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff77840a0 "Must not GC when in the specializer/JIT\n") at src/core/exceptions.c:827
(gdb) f 1
#1 0x00007ffff7670adb in run_gc (tc=tc@entry=0x68e0a0, what_to_do=what_to_do@entry=1 '\001') at src/gc/orchestrate.c:388
388 MVM_panic(1, "Must not GC when in the specializer/JIT\n");
(gdb) l
383
384 unsigned int interval_id;
385
386 #if MVM_GC_DEBUG
387 if (tc->in_spesh)
388 MVM_panic(1, "Must not GC when in the specializer/JIT\n");
389 #endif
390
391 /* Decide nursery or full collection. */
392 gen = tc->instance->gc_full_collect ? MVMGCGenerations_Both : MVMGCGenerations_Nursery;
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment