Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Last active May 21, 2021 11:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dogbert17/e4a3993b36fe4105681c9a853d014649 to your computer and use it in GitHub Desktop.
Save dogbert17/e4a3993b36fe4105681c9a853d014649 to your computer and use it in GitHub Desktop.
Panic
[New Thread 0x7ffff730a700 (LWP 430553)]
1..1
[New Thread 0x7fffefe0f700 (LWP 430554)]
[New Thread 0x7fffef60e700 (LWP 430555)]
[New Thread 0x7fffeee0d700 (LWP 430556)]
[New Thread 0x7fffee60c700 (LWP 430557)]
[New Thread 0x7fffede0b700 (LWP 430558)]
[New Thread 0x7fffed60a700 (LWP 430559)]
[New Thread 0x7fffece05700 (LWP 430560)]
[New Thread 0x7fffcffff700 (LWP 430561)]
[Switching to Thread 0x7fffee60c700 (LWP 430557)]
Thread 6 "async io thread" hit Breakpoint 1, MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff7a6ad70 "non-AsyncTask fetched from eventloop active work list") at src/core/exceptions.c:853
853 MVM_NO_RETURN void MVM_panic(MVMint32 exitCode, const char *messageFormat, ...) {
(gdb) bt
#0 MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff7a6ad70 "non-AsyncTask fetched from eventloop active work list") at src/core/exceptions.c:853
#1 0x00007ffff793d692 in MVM_io_eventloop_get_active_work (tc=tc@entry=0x7fffe810ccb0, work_idx=1) at src/io/eventloop.c:240
#2 0x00007ffff7944670 in cancel (loop=<optimized out>, async_task=<optimized out>, data=0x7fffe839b100, tc=0x7fffe810ccb0) at src/io/timers.c:50
#3 cancel (tc=0x7fffe810ccb0, loop=<optimized out>, async_task=<optimized out>, data=0x7fffe839b100) at src/io/timers.c:45
#4 0x00007ffff793cc58 in cancel_work (tc=0x7fffe810ccb0) at src/io/eventloop.c:56
#5 async_handler (handle=<optimized out>) at src/io/eventloop.c:78
#6 0x00007ffff7a49cc6 in uv.async_io () from //home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so
#7 0x00007ffff7a44aa3 in uv.io_poll () from //home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so
#8 0x00007ffff7a4a4da in uv_run () from //home/dogbert/repos/rakudo/nqp/MoarVM/../../install/lib/libmoar.so
#9 0x00007ffff7913eb5 in thread_initial_invoke (tc=0x7fffe810ccb0, data=<optimized out>) at src/core/threads.c:58
#10 0x00007ffff78cde10 in MVM_interp_run (tc=0x1, tc@entry=0x7fffe810ccb0, initial_invoke=0x7ffff7a6ad70, initial_invoke@entry=0x7ffff7913e70 <thread_initial_invoke>, invoke_data=0x7ffff7a6ad70, invoke_data@entry=0x7ffff7913e70 <thread_initial_invoke>, outer_runloop=outer_runloop@entry=0x0) at src/core/interp.c:158
#11 0x00007ffff7913f4d in start_thread (data=0x7fffe8130020) at src/core/threads.c:91
#12 0x00007ffff735e609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#13 0x00007ffff75e9293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(gdb) l
848 * unrecoverable, and a thread context is either not available or stands a
849 * good chance of being too corrupt to print (or is not relevant information).
850 * Use MVM_oops in the case a thread context is available.
851 * TODO: Some hook for embedders.
852 */
853 MVM_NO_RETURN void MVM_panic(MVMint32 exitCode, const char *messageFormat, ...) {
854 va_list args;
855 fputs("MoarVM panic: ", stderr);
856 va_start(args, messageFormat);
857 vfprintf(stderr, messageFormat, args);
(gdb) f 1
#1 0x00007ffff793d692 in MVM_io_eventloop_get_active_work (tc=tc@entry=0x7fffe810ccb0, work_idx=1) at src/io/eventloop.c:240
240 MVM_panic(1, "non-AsyncTask fetched from eventloop active work list");
(gdb) l
235 /* Gets an active work item from the active work eventloop. */
236 MVMAsyncTask * MVM_io_eventloop_get_active_work(MVMThreadContext *tc, int work_idx) {
237 if (work_idx >= 0 && work_idx < (int)MVM_repr_elems(tc, tc->instance->event_loop_active)) {
238 MVMObject *task_obj = MVM_repr_at_pos_o(tc, tc->instance->event_loop_active, work_idx);
239 if (REPR(task_obj)->ID != MVM_REPR_ID_MVMAsyncTask)
240 MVM_panic(1, "non-AsyncTask fetched from eventloop active work list");
241 MVM_ASSERT_NOT_FROMSPACE(tc, task_obj);
242 return (MVMAsyncTask *)task_obj;
243 }
244 else {
(gdb) p REPR(task_obj)->ID
value has been optimized out
(gdb) p ((MVMArray*)(tc->instance->event_loop_active))->body.slots.o[1]
$1 = (MVMObject *) 0x0
(gdb) p work_idx
$2 = 1
(gdb) p (int)MVM_repr_elems(tc, tc->instance->event_loop_active)
$3 = 4
(gdb) info threads
Id Target Id Frame
1 Thread 0x7ffff734e440 (LWP 430552) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555585fce48) at ../sysdeps/nptl/futex-internal.h:183
2 Thread 0x7ffff730a700 (LWP 430553) "spesh optimizer" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555555f1c00) at ../sysdeps/nptl/futex-internal.h:183
3 Thread 0x7fffefe0f700 (LWP 430554) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559380) at ../sysdeps/nptl/futex-internal.h:183
4 Thread 0x7fffef60e700 (LWP 430555) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559420) at ../sysdeps/nptl/futex-internal.h:183
5 Thread 0x7fffeee0d700 (LWP 430556) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559380) at ../sysdeps/nptl/futex-internal.h:183
* 6 Thread 0x7fffee60c700 (LWP 430557) "async io thread" MVM_panic (exitCode=exitCode@entry=1, messageFormat=messageFormat@entry=0x7ffff7a6ad70 "non-AsyncTask fetched from eventloop active work list") at src/core/exceptions.c:853
7 Thread 0x7fffede0b700 (LWP 430558) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559380) at ../sysdeps/nptl/futex-internal.h:183
8 Thread 0x7fffed60a700 (LWP 430559) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559380) at ../sysdeps/nptl/futex-internal.h:183
9 Thread 0x7fffece05700 (LWP 430560) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x555555559380) at ../sysdeps/nptl/futex-internal.h:183
10 Thread 0x7fffcffff700 (LWP 430561) "moar" futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555555f49bc) 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