Created
September 26, 2017 12:41
-
-
Save dogbert17/f8cb997404699925730b76da44ef40da to your computer and use it in GitHub Desktop.
This file contains 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
================================================================================================ | |
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