Skip to content

Instantly share code, notes, and snippets.

@dogbert17
Created September 26, 2017 12:41
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/f8cb997404699925730b76da44ef40da to your computer and use it in GitHub Desktop.
Save dogbert17/f8cb997404699925730b76da44ef40da to your computer and use it in GitHub Desktop.
================================================================================================
This is Rakudo Perl 6 running in the GNU 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 2017.09.92.g.8.cf.083.c.70 built on MoarVM version 2017.09.1.32.g.9749.b.0.fa.1,
running on ubuntu (14.04.3.LTS.Trusty.Tahr) / linux (3.19.0.32.generic)
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...done.
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=./perl6-gdb-m --libpath=. --libpath=blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib t/spec/S17-promise/nonblocking-await.t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
... many runs
(gdb) r
Starting program: /home/dogbert/repos/rakudo/install/bin/moar --execname=./perl6-gdb-m --libpath=. --libpath=blib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib --libpath=/home/dogbert/repos/rakudo/install/share/nqp/lib /home/dogbert/repos/rakudo/perl6.moarvm --nqp-lib=blib t/spec/S17-promise/nonblocking-await.t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb77e3b40 (LWP 20377)]
1..27
[New Thread 0xb44ffb40 (LWP 20378)]
[New Thread 0xb3affb40 (LWP 20379)]
ok 1 - Recursion creating a deep await-tree completes correctly
1..3
ok 1 - code dies
ok 2 - right exception type (Exception)
ok 3 - .message matches oopsy
ok 2 - Deep Promise tree conveys exception up to the top
[New Thread 0xb2affb40 (LWP 20380)]
[New Thread 0xb22feb40 (LWP 20381)]
ok 3 - Hundreds of time-based Promises awaited completes correctly
ok 4 - await of multiple Promises suspends until all ready
ok 5 - Hundred of await on time/manual Promise completes corectly
ok 6 - await of multiple Promises suspends until all ready
1..3
ok 1 - code dies
ok 2 - right exception type (X::AdHoc)
ok 3 - .message matches bust
ok 7 - Multiple await also conveys errors correctly
[Switching to Thread 0xb44ffb40 (LWP 20378)]
Breakpoint 1, MVM_panic (exitCode=1, messageFormat=0xb7cb48fc "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:688
688 fprintf(stderr, "MoarVM panic: ");
(gdb) bt
#0 MVM_panic (exitCode=1, messageFormat=0xb7cb48fc "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:688
#1 0xb7bc3321 in MVM_gc_root_add_frame_roots_to_worklist (tc=0xb00b2b0, worklist=0xb16a7590, cur_frame=0xb03eb08) at src/gc/roots.c:364
#2 0xb7bc66db in MVM_gc_mark_collectable (tc=0xb00b2b0, worklist=0xb16a7590, new_addr=0xb03eb08) at src/gc/collect.c:384
#3 0xb7bc4f05 in process_worklist (tc=0xb00b2b0, worklist=0xb16a7590, wtp=0xb44fe008, gen=0 '\000') at src/gc/collect.c:314
#4 0xb7bc4aa7 in MVM_gc_collect (tc=0xb00b2b0, what_to_do=0 '\000', gen=0 '\000') at src/gc/collect.c:135
#5 0xb7bbeb8a in run_gc (tc=0xb00b2b0, what_to_do=0 '\000') at src/gc/orchestrate.c:359
#6 0xb7bbef81 in MVM_gc_enter_from_allocator (tc=0xb00b2b0) at src/gc/orchestrate.c:472
#7 0xb7bbf33f in MVM_gc_allocate_nursery (tc=0xb00b2b0, size=24) at src/gc/allocation.c:32
#8 0xb7bbf254 in MVM_gc_allocate (tc=0xb00b2b0, size=24) at src/gc/allocation.h:13
#9 0xb7bbf3a7 in MVM_gc_allocate_zeroed (tc=0xb00b2b0, size=24) at src/gc/allocation.c:49
#10 0xb7bbf677 in MVM_gc_allocate_object (tc=0xb00b2b0, st=0x8078898) at src/gc/allocation.c:86
#11 0xb7baba7c in MVM_box_num (tc=0xb00b2b0, value=3, type=0x807ff00, dst=0x8539278) at src/core/coerce.c:421
#12 0xb7b7bab9 in MVM_interp_run (tc=0xb00b2b0, initial_invoke=0xb7ba541e <thread_initial_invoke>, invoke_data=0xaf06200) at src/core/interp.c:2163
#13 0xb7ba553e in start_thread (data=0xaf06200) at src/core/threads.c:83
#14 0xb789df72 in start_thread (arg=0xb44ffb40) at pthread_create.c:312
#15 0xb79e83ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:129
(gdb) info threads
Id Target Id Frame
6 Thread 0xb22feb40 (LWP 20381) "moar" 0xb7fdccb0 in ?? ()
5 Thread 0xb2affb40 (LWP 20380) "moar" 0xb7fdccb0 in ?? ()
4 Thread 0xb3affb40 (LWP 20379) "moar" 0xb7fdccb0 in ?? ()
* 3 Thread 0xb44ffb40 (LWP 20378) "moar" MVM_panic (exitCode=1, messageFormat=0xb7cb48fc "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:688
2 Thread 0xb77e3b40 (LWP 20377) "moar" 0xb7fdccb0 in ?? ()
1 Thread 0xb7887700 (LWP 20376) "moar" 0xb7fdccb0 in ?? ()
(gdb) f 1
#1 0xb7bc3321 in MVM_gc_root_add_frame_roots_to_worklist (tc=0xb00b2b0, worklist=0xb16a7590, cur_frame=0xb03eb08) at src/gc/roots.c:364
364 MVM_gc_worklist_add(tc, worklist, &cur_frame->outer);
(gdb) p MVM_dump_backtrace(tc)
at gen/moar/Metamodel.nqp:862 (blib/Perl6/Metamodel.moarvm:parents)
from gen/moar/Metamodel.nqp:431 (blib/Perl6/Metamodel.moarvm:attributes)
from SETTING::src/core/Mu.pm:685 (./CORE.setting.moarvm:clone)
from SETTING::src/core/operators.pm:65 (./CORE.setting.moarvm:infix:<but>)
from SETTING::src/core.d/await.pm:40 (./CORE.d.setting.moarvm:)
from SETTING::src/core.d/await.pm:39 (./CORE.d.setting.moarvm:)
from <unknown>:1 (./CORE.d.setting.moarvm:)
from SETTING::src/core/Exception.pm:62 (./CORE.setting.moarvm:rethrow)
from SETTING::src/core/ThreadPoolScheduler.pm:159 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:80 (./CORE.setting.moarvm:do-await-all)
from SETTING::src/core/ThreadPoolScheduler.pm:65 (./CORE.setting.moarvm:await-all)
from SETTING::src/core.d/await.pm:43 (./CORE.d.setting.moarvm:await)
from t/spec/S17-promise/nonblocking-await.t:64 (<ephemeral file>:)
from SETTING::src/core/Promise.pm:217 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:634 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:216 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:141 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:216 (./CORE.setting.moarvm:)
from SETTING::src/core/ThreadPoolScheduler.pm:215 (./CORE.setting.moarvm:run-one)
from SETTING::src/core/Mu.pm:734 (./CORE.setting.moarvm:dispatch:<!>)
from SETTING::src/core/ThreadPoolScheduler.pm:252 (./CORE.setting.moarvm:)
from SETTING::src/core/Thread.pm:30 (./CORE.setting.moarvm:THREAD-ENTRY)
$1 = void
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment