Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MoarVM Panic when running e. g. t/04-nativecall/06-struct.t with a small nursery #777

Closed
dogbert17 opened this issue Jan 5, 2018 · 1 comment

Comments

@dogbert17
Copy link
Contributor

dogbert17 commented Jan 5, 2018

Other tests which I have seen fail with very similar backtraces are
t/04-nativecall/14-rw-attrs.t
t/04-nativecall/11-cpp.t
t/04-nativecall/12-sizeof.t

dogbert@dogbert-VirtualBox ~/repos/rakudo $ ./perl6 -v
This is Rakudo version 2017.12-111-g8023d2129 built on MoarVM version 2017.12-20-g57103408
implementing Perl 6.c.

dogbert@dogbert-VirtualBox ~/repos/rakudo/nqp/MoarVM $ git diff
diff --git a/src/gc/collect.h b/src/gc/collect.h
index 123d9348..f3eaa463 100644
--- a/src/gc/collect.h
+++ b/src/gc/collect.h
@@ -1,6 +1,6 @@
 /* The maximum size of the nursery area. Note that since it's semi-space
  * copying, we could actually have double this amount allocated per thread. */
-#define MVM_NURSERY_SIZE 4194304
+#define MVM_NURSERY_SIZE (32768 * 2)
 
 /* The nursery size threads other than the main thread start out with. If
  * they fill it and trigger a GC run, then it is doubled. If they are
diff --git a/src/gc/debug.h b/src/gc/debug.h
index 9c613ca9..cfd3ae67 100644
--- a/src/gc/debug.h
+++ b/src/gc/debug.h
@@ -3,7 +3,7 @@
  * 1 = Checks on reference assignments and other relatively cheap cases
  * 2 = Checks on every object register access (slow)
  */
-#define MVM_GC_DEBUG 0
+#define MVM_GC_DEBUG 1
 
 #if MVM_GC_DEBUG
 #define MVM_ASSERT_NOT_FROMSPACE(tc, c) do { \


(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/04-nativecall/06-struct.t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xb1e7cb40 (LWP 3926)]

Breakpoint 1, MVM_panic (exitCode=1, messageFormat=0xb60ba1a0 "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:822
822	    fprintf(stderr, "MoarVM panic: ");
(gdb) bt
#0  MVM_panic (exitCode=1, messageFormat=0xb60ba1a0 "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:822
#1  0xb5e8bb95 in gc_mark_repr_data (tc=0xb5403c80, st=0xb2c86308, worklist=0x99b1ad10) at src/6model/reprs/CStruct.c:635
#2  0xb5d8d0d6 in MVM_gc_mark_collectable (tc=0xb5403c80, worklist=0x99b1ad10, new_addr=0xb2c86308) at src/gc/collect.c:408
#3  0xb5d7c12a in MVM_gc_root_add_gen2s_to_worklist (tc=0xb5403c80, worklist=0x99b1ad10) at src/gc/roots.c:302
#4  0xb5d83e38 in MVM_gc_collect (tc=0xb5403c80, what_to_do=0 '\000', gen=0 '\000') at src/gc/collect.c:155
#5  0xb5d68a83 in run_gc (tc=0xb5403c80, what_to_do=0 '\000') at src/gc/orchestrate.c:369
#6  0xb5d69725 in MVM_gc_enter_from_allocator (tc=0xb5403c80) at src/gc/orchestrate.c:486
#7  0xb5d6a253 in MVM_gc_allocate_nursery (tc=0xb5403c80, size=40) at src/gc/allocation.c:32
#8  0xb5d6a027 in MVM_gc_allocate (tc=0xb5403c80, size=40) at src/gc/allocation.h:13
#9  0xb5d6a333 in MVM_gc_allocate_zeroed (tc=0xb5403c80, size=40) at src/gc/allocation.c:49
#10 0xb5d6ac4a in MVM_gc_allocate_object (tc=0xb5403c80, st=0xb2c01b50) at src/gc/allocation.c:86
#11 0xb5ddcfc5 in MVM_repr_alloc_init (tc=0xb5403c80, type=0xb3401650) at src/6model/reprconv.c:17
#12 0xb5e522b2 in MVM_iter (tc=0xb5403c80, target=0xb2639f38) at src/6model/reprs/MVMIter.c:203
#13 0xb5c8ab63 in MVM_interp_run (tc=0xb5403c80, initial_invoke=0xb602ed3f <toplevel_initial_invoke>, invoke_data=0xb13008c0) at src/core/interp.c:2778
#14 0xb602f1f8 in MVM_vm_run_file (instance=0xb5603480, filename=0xbffff2dd "/home/dogbert/repos/rakudo/perl6.moarvm") at src/moar.c:401
#15 0x080494f9 in main (argc=10, argv=0xbfffefe4) at src/main.c:256
(gdb) info threads
  Id   Target Id         Frame 
  2    Thread 0xb1e7cb40 (LWP 3926) "moar" 0xb7fdccb0 in ?? ()
* 1    Thread 0xb584b940 (LWP 3920) "moar" MVM_panic (exitCode=1, messageFormat=0xb60ba1a0 "Adding pointer %p to past fromspace to GC worklist") at src/core/exceptions.c:822
(gdb) f 1
#1  0xb5e8bb95 in gc_mark_repr_data (tc=0xb5403c80, st=0xb2c86308, worklist=0x99b1ad10) at src/6model/reprs/CStruct.c:635
635	                MVM_gc_worklist_add(tc, worklist, &map[i].name_map);
(gdb) p MVM_dump_backtrace(tc)
   at gen/moar/stage2/QRegex.nqp:2190  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:MATCH)
 from <unknown>:1  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!cursor_pass)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:value:sym<quote>)
 from gen/moar/stage2/QRegex.nqp:1722  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:value)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:term:sym<value>)
 from gen/moar/stage2/QRegex.nqp:1722  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:term)
 from src/Perl6/Grammar.nqp:4001  (blib/Perl6/Grammar.moarvm:termish)
 from gen/moar/stage2/NQPHLL.nqp:883  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:EXPR)
 from src/Perl6/Grammar.nqp:4041  (blib/Perl6/Grammar.moarvm:EXPR)
 from src/Perl6/Grammar.nqp:1334  (blib/Perl6/Grammar.moarvm:statement)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:semilist)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:circumfix:sym<( )>)
 from gen/moar/stage2/QRegex.nqp:1721  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:circumfix)
 from src/Perl6/Grammar.nqp:3360  (blib/Perl6/Grammar.moarvm:trait_mod:sym<is>)
 from gen/moar/stage2/QRegex.nqp:1721  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:trait_mod)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:trait)
 from src/Perl6/Grammar.nqp:2796  (blib/Perl6/Grammar.moarvm:routine_def)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:routine_declarator:sym<sub>)
 from gen/moar/stage2/QRegex.nqp:1721  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:routine_declarator)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:term:sym<routine_declarator>)
 from gen/moar/stage2/QRegex.nqp:1721  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:!protoregex)
 from <unknown>:1  (blib/Perl6/Grammar.moarvm:term)
 from src/Perl6/Grammar.nqp:4001  (blib/Perl6/Grammar.moarvm:termish)
 from gen/moar/stage2/NQPHLL.nqp:883  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:EXPR)
 from src/Perl6/Grammar.nqp:4041  (blib/Perl6/Grammar.moarvm:EXPR)
 from src/Perl6/Grammar.nqp:1334  (blib/Perl6/Grammar.moarvm:statement)
 from src/Perl6/Grammar.nqp:1266  (blib/Perl6/Grammar.moarvm:statementlist)
 from gen/moar/stage2/NQPHLL.nqp:1113  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:LANG)
 from src/Perl6/Grammar.nqp:1700  (blib/Perl6/Grammar.moarvm:FOREIGN_LANG)
 from src/Perl6/Grammar.nqp:1230  (blib/Perl6/Grammar.moarvm:comp_unit)
 from src/Perl6/Grammar.nqp:532  (blib/Perl6/Grammar.moarvm:TOP)
 from gen/moar/stage2/QRegex.nqp:2330  (/home/dogbert/repos/rakudo/install/share/nqp/lib/QRegex.moarvm:parse)
 from gen/moar/stage2/NQPHLL.nqp:1881  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:parse)
 from gen/moar/stage2/NQPHLL.nqp:1797  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:execute_stage)
 from gen/moar/stage2/NQPHLL.nqp:1830  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:run)
 from gen/moar/stage2/NQPHLL.nqp:1833  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:)
 from gen/moar/stage2/NQPHLL.nqp:1819  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:compile)
 from gen/moar/stage2/NQPHLL.nqp:1519  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:eval)
 from gen/moar/stage2/NQPHLL.nqp:1774  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:evalfiles)
 from gen/moar/stage2/NQPHLL.nqp:1666  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_eval)
 from src/Perl6/Compiler.nqp:42  (blib/Perl6/Compiler.moarvm:command_eval)
 from gen/moar/stage2/NQPHLL.nqp:1625  (/home/dogbert/repos/rakudo/install/share/nqp/lib/NQPHLL.moarvm:command_line)
 from gen/moar/main.nqp:47  (/home/dogbert/repos/rakudo/perl6.moarvm:MAIN)
 from gen/moar/main.nqp:38  (/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>)
$1 = void
(gdb)
@dogbert17
Copy link
Contributor Author

Fixed by jnthn++ with commit 85fc758

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant