From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Subject: bug#40525: inferior process on core-updates crashes: mmap(PROT_NONE) failed Date: Sat, 11 Apr 2020 16:03:08 +0200 Message-ID: <87h7xqrug3.fsf@gnu.org> References: <87369c8mus.fsf@cbaines.net> <87a73jy8y9.fsf@gnu.org> <87y2r37dy8.fsf@cbaines.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:37779) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jNGju-0006hD-FU for bug-guix@gnu.org; Sat, 11 Apr 2020 10:04:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jNGjq-0003Y4-Og for bug-guix@gnu.org; Sat, 11 Apr 2020 10:04:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:45402) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jNGjq-0003Xw-Kl for bug-guix@gnu.org; Sat, 11 Apr 2020 10:04:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87y2r37dy8.fsf@cbaines.net> (Christopher Baines's message of "Fri, 10 Apr 2020 12:55:11 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane-mx.org@gnu.org Sender: "bug-Guix" To: Christopher Baines Cc: 40525@debbugs.gnu.org Hi Christopher, Christopher Baines skribis: > I've attached a script that when run should reproduce the issue. I > extracted the code relating to lint warnings from the Guix Data > Service. The script attached runs this code twice against the inferior, > once will often be enough to cause it to crash, but twice should > reproduce it more reliably. Thanks a lot. Here=E2=80=99s a backtrace from the core dumped by the inferior: --8<---------------cut here---------------start------------->8--- $ gdb /gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2/bin/guile core GNU gdb (GDB) 9.1 [...] (gdb) bt #0 0x00007fc5d8145aba in raise () from /gnu/store/fa6wj5bxkj5ll1d7292a70kn= myl7a0cr-glibc-2.31/lib/libc.so.6 #1 0x00007fc5d8146bf5 in abort () from /gnu/store/fa6wj5bxkj5ll1d7292a70kn= myl7a0cr-glibc-2.31/lib/libc.so.6 #2 0x00007fc5d86d94ee in GC_unmap () from /gnu/store/zg126cjicrpm2p6zc08ra= 5vh4ddag7ww-libgc-8.0.4/lib/libgc.so.1 #3 0x00007fc5d86d95d1 in GC_unmap_old.part.30 () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #4 0x00007fc5d86e0882 in GC_finish_collection () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #5 0x00007fc5d86e0cf5 in GC_try_to_collect_inner () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #6 0x00007fc5d86e1138 in GC_collect_or_expand () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #7 0x00007fc5d86e1517 in GC_alloc_large () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #8 0x00007fc5d86e545a in GC_generic_malloc () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #9 0x00007fc5d86e56a2 in GC_malloc_kind_global () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #10 0x00007fc5d8805ce5 in resize_table (table=3Dtable@entry=3D0x7fc5d6318cb= 0) at weak-table.c:251 #11 0x00007fc5d8806638 in weak_table_put_x (value=3D#,=20 key=3D"mirror://cpan/authors/id/M/MI/MIYAGAWA/", closure=3D0x7fc5434535= c0, pred=3D0x7fc5d8805bb0 ,=20 hash=3D4466916161623136036, table=3D0x7fc5d6318cb0) at weak-table.c:377 #12 scm_c_weak_table_put_x (table=3D, raw_hash=3D44669161616= 23136036,=20 pred=3D0x7fc5d8805bb0 , closure=3D0x7fc5434535c0, key= =3D"mirror://cpan/authors/id/M/MI/MIYAGAWA/",=20 value=3D#) at weak-table.c:559 #13 0x00007fc5d87d6007 in maybe_annotate_source (column=3D27, line=3D3340, = opts=3D0x7fff347b9708,=20 port=3D#, x=3D"mirror://cpan/authors/id/M/MI/MIYAG= AWA/") at read.c:693 #14 scm_read_string_like_syntax (chr=3Dchr@entry=3D34, port=3Dport@entry=3D= #,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:726 #15 0x00007fc5d87d6720 in scm_read_string (opts=3D0x7fff347b9708, port=3D#<= port 3 7fc543ad90a0>, chr=3D34) at read.c:733 #16 read_inner_expression (port=3D#, opts=3D0x7fff347b= 9708) at read.c:1822 #17 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #18 0x00007fc5d87d7c16 in scm_read_sexp (chr=3Dchr@entry=3D40, port=3Dport@= entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:481 #19 0x00007fc5d87d6820 in read_inner_expression (port=3D#, opts=3D0x7fff347b9708) at read.c:1820 #20 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #21 0x00007fc5d87d7c16 in scm_read_sexp (chr=3Dchr@entry=3D40, port=3Dport@= entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:481 #22 0x00007fc5d87d6820 in read_inner_expression (port=3D#, opts=3D0x7fff347b9708) at read.c:1820 #23 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #24 0x00007fc5d87d7c16 in scm_read_sexp (chr=3Dchr@entry=3D40, port=3Dport@= entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:481 #25 0x00007fc5d87d6820 in read_inner_expression (port=3D#, opts=3D0x7fff347b9708) at read.c:1820 #26 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #27 0x00007fc5d87d7c16 in scm_read_sexp (chr=3Dchr@entry=3D40, port=3Dport@= entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:481 #28 0x00007fc5d87d6820 in read_inner_expression (port=3D#, opts=3D0x7fff347b9708) at read.c:1820 #29 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #30 0x00007fc5d87d7c16 in scm_read_sexp (chr=3Dchr@entry=3D40, port=3Dport@= entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:481 #31 0x00007fc5d87d6820 in read_inner_expression (port=3D#, opts=3D0x7fff347b9708) at read.c:1820 #32 0x00007fc5d87d7925 in scm_read_expression (port=3Dport@entry=3D#,=20 opts=3Dopts@entry=3D0x7fff347b9708) at read.c:1880 #33 0x00007fc5d87d8197 in scm_read (port=3D#) at read.= c:1969 #34 0x00007fc5c0d5598b in ?? () #35 0x00007fc5d80bed80 in ?? () #36 0x00007fc5d886e5c0 in ?? () from /gnu/store/18hp7flyb3yid3yp49i6qcdq0sb= i5l1n-guile-3.0.2/lib/libguile-3.0.so.1 #37 0x00007fc5d80bed80 in ?? () #38 0x00007fc5d87a7f0b in scm_jit_enter_mcode (thread=3D0x7fc5d80bed80,=20 mcode=3D0x7fc5c964daf0 "H\203\350\020I\211\314I)\304I\203\374(\017\205\= 261") at jit.c:5777 #39 0x00007fc5d88034c9 in vm_regular_engine (thread=3D0x10) at vm-engine.c:= 360 #40 0x00007fc5d8804175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7fff347b9900, nargs=3Dnargs@entry=3D2) at vm.c:1608 #41 0x00007fc5d878109a in scm_call_2 (proc=3D, arg1=3D, arg2=3D) at eval.c:503 #42 0x00007fc5d87954fe in map_proc (proc=3D, key=3D, data=3D,=20 value=3D((140487468690240) (140487526526240) (140487485623904) (1404874= 67244992) (140487524472384) (140487487009568) (140487524865600) (1404875244= 71904) (140487524657184) (140487489846880) (140487468425216) (1404874664771= 20) (140487486996640) =E2=80=A6) #43 0x00007fc5d87965d2 in scm_internal_hash_fold (fn=3D0x7fc5d87954f0 , closure=3D0x7fc53e3e8620,=20 init=3D, table=3D) at hashtab.c:1029 #44 0x00007fc5d2e2c206 in ?? () #45 0x00007fc5d80bed80 in ?? () #46 0x00007fc5d886e5c0 in ?? () from /gnu/store/18hp7flyb3yid3yp49i6qcdq0sb= i5l1n-guile-3.0.2/lib/libguile-3.0.so.1 #47 0x00007fc5d80bed80 in ?? () #48 0x00007fc5d87a7f0b in scm_jit_enter_mcode (thread=3D0x7fc5d80bed80,=20 mcode=3D0x7fc5c0e813c1 "I\211\314I)\304I\203\374@\017\214\002\002") at = jit.c:5777 #49 0x00007fc5d8803350 in vm_regular_engine (thread=3D0x7fc5d2e2c1e0) at vm= -engine.c:546 #50 0x00007fc5d8804175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7fff347b9b48, nargs=3Dnargs@entry=3D1) at vm.c:1608 #51 0x00007fc5d8782207 in scm_primitive_eval (exp=3D) at eva= l.c:671 #52 0x00007fc5d87a9bcb in scm_primitive_load (filename=3D) a= t load.c:131 #53 0x00007fc5d8802d2c in vm_regular_engine (thread=3D0x7fc5d80bed80) at vm= -engine.c:972 #54 0x00007fc5d8804175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7fff347b9d18, nargs=3Dnargs@entry=3D1) at vm.c:1608 #55 0x00007fc5d8782207 in scm_primitive_eval (exp=3D,=20 exp@entry=3D((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) loa= d/lang) "/home/ludo/.cache/guix/inferiors/x5fhyqwm6qwd445ftlnwxlcot77xbxxst= ysjbvnvyzuo6kp3jwpq/bin/guix") (quit)))) at eval.c:671 #56 0x00007fc5d8782263 in scm_eval ( exp=3D((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang= ) "/home/ludo/.cache/guix/inferiors/x5fhyqwm6qwd445ftlnwxlcot77xbxxstysjbvn= vyzuo6kp3jwpq/bin/guix") (quit))),=20 module_or_state=3Dmodule_or_state@entry=3D#) at eval.c:705 #57 0x00007fc5d87da070 in scm_shell (argc=3D6, argv=3D0x7fff347ba388) at sc= ript.c:357 #58 0x00007fc5d8799c0d in invoke_main_func (body_data=3D0x7fff347ba220) at = init.c:308 #59 0x00007fc5d877ce5a in c_body (d=3D0x7fff347ba160) at continuations.c:430 #60 0x00007fc5d8802d2c in vm_regular_engine (thread=3D0x7fc5d80bed80) at vm= -engine.c:972 #61 0x00007fc5d8804175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7fff347b9f20, nargs=3Dnargs@entry=3D2) at vm.c:1608 #62 0x00007fc5d878109a in scm_call_2 (proc=3D, arg1=3D, arg2=3D) at eval.c:503 #63 0x00007fc5d878289a in scm_c_with_exception_handler (type=3Dtype@entry= =3D#t,=20 handler=3Dhandler@entry=3D0x7fc5d87f9560 ,=20 handler_data=3Dhandler_data@entry=3D0x7fff347ba090, thunk=3Dthunk@entry= =3D0x7fc5d87f96a0 ,=20 thunk_data=3Dthunk_data@entry=3D0x7fff347ba090) at exceptions.c:170 #64 0x00007fc5d87f989d in scm_c_catch (tag=3Dtag@entry=3D#t, body=3Dbody@en= try=3D0x7fc5d877ce50 ,=20 body_data=3Dbody_data@entry=3D0x7fff347ba160, handler=3Dhandler@entry= =3D0x7fc5d877d0f0 ,=20 handler_data=3Dhandler_data@entry=3D0x7fff347ba160,=20 pre_unwind_handler=3Dpre_unwind_handler@entry=3D0x7fc5d877cf50 ,=20 pre_unwind_handler_data=3D0x7fc5d6385360) at throw.c:168 #65 0x00007fc5d877d403 in scm_i_with_continuation_barrier (body=3Dbody@entr= y=3D0x7fc5d877ce50 ,=20 body_data=3Dbody_data@entry=3D0x7fff347ba160, handler=3Dhandler@entry= =3D0x7fc5d877d0f0 ,=20 handler_data=3Dhandler_data@entry=3D0x7fff347ba160,=20 pre_unwind_handler=3Dpre_unwind_handler@entry=3D0x7fc5d877cf50 ,=20 pre_unwind_handler_data=3D0x7fc5d6385360) at continuations.c:368 #66 0x00007fc5d877d495 in scm_c_with_continuation_barrier (func=3D, data=3D) at continuations.c:464 #67 0x00007fc5d87f833f in with_guile (base=3D0x7fff347ba1c8, data=3D0x7fff3= 47ba1f0) at threads.c:645 #68 0x00007fc5d86d7c78 in GC_call_with_stack_base () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #69 0x00007fc5d87f8658 in scm_i_with_guile (dynamic_state=3D= , data=3Ddata@entry=3D0x7fff347ba1f0,=20 func=3Dfunc@entry=3D0x7fc5d8799bf0 ) at threads.c:688 #70 scm_with_guile (func=3Dfunc@entry=3D0x7fc5d8799bf0 , = data=3Ddata@entry=3D0x7fff347ba220) at threads.c:694 #71 0x00007fc5d8799d82 in scm_boot_guile (argc=3Dargc@entry=3D6, argv=3Darg= v@entry=3D0x7fff347ba388,=20 main_func=3Dmain_func@entry=3D0x401240 , closure=3Dclosure@= entry=3D0x0) at init.c:291 #72 0x0000000000401100 in main (argc=3D6, argv=3D0x7fff347ba388) at guile.c= :95 (gdb) shell du -h core 1.4G core --8<---------------cut here---------------end--------------->8--- Two clues: the heap is very large, and the backtrace shows it crashes as we populate =E2=80=98scm_source_whash=E2=80=99, the source property weak ha= sh table. The size of the table looks reasonable though: --8<---------------cut here---------------start------------->8--- (gdb) frame 12 #12 scm_c_weak_table_put_x (table=3D, raw_hash=3D44669161616= 23136036,=20 pred=3D0x7fc5d8805bb0 , closure=3D0x7fc5434535c0, key= =3D"mirror://cpan/authors/id/M/MI/MIYAGAWA/",=20 value=3D#) at weak-table.c:559 559 weak-table.c: Dosiero a=C5=AD dosierujo ne ekzistas. (gdb) info locals t =3D 0x7fc5d6318cb0 (gdb) p *t $1 =3D {buckets =3D 0x7fc59f0d5000, lock =3D {__data =3D {__lock =3D 1, __c= ount =3D 0, __owner =3D 29145, __nusers =3D 1,=20 __kind =3D 0, __spins =3D 0, __elision =3D 0, __list =3D {__prev =3D = 0x0, __next =3D 0x0}},=20 __size =3D "\001\000\000\000\000\000\000\000\331q\000\000\001", '\000' = , __align =3D 1},=20 kind =3D SCM_WEAK_TABLE_KIND_KEY, n_buckets =3D 14051, n_items =3D 12646,= lower =3D 3512, upper =3D 12645,=20 size_index =3D 9, min_size_index =3D 0, last_gc_no =3D 139} --8<---------------cut here---------------end--------------->8--- It=E2=80=99s probably the =E2=80=98formatting=E2=80=99 checker that causes = source files to be read, as show in the backtrace. In your reproducer, I changed: if network-dependent? to: if (or network-dependent? (eq? name 'formatting)) but it eventually crashes as well, with a slightly different backtrace: --8<---------------cut here---------------start------------->8--- (gdb) bt #0 0x00007ffaed0e6aba in raise () from /gnu/store/fa6wj5bxkj5ll1d7292a70kn= myl7a0cr-glibc-2.31/lib/libc.so.6 #1 0x00007ffaed0e7bf5 in abort () from /gnu/store/fa6wj5bxkj5ll1d7292a70kn= myl7a0cr-glibc-2.31/lib/libc.so.6 #2 0x00007ffaed67a4ee in GC_unmap () from /gnu/store/zg126cjicrpm2p6zc08ra= 5vh4ddag7ww-libgc-8.0.4/lib/libgc.so.1 #3 0x00007ffaed67a5d1 in GC_unmap_old.part.30 () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #4 0x00007ffaed681882 in GC_finish_collection () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #5 0x00007ffaed681cf5 in GC_try_to_collect_inner () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #6 0x00007ffaed685570 in GC_grow_table () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #7 0x00007ffaed685c8a in GC_register_finalizer_inner () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #8 0x00007ffaed72c1c1 in scm_i_set_finalizer (obj=3Dobj@entry=3D0x7ffaaf03= 2d00,=20 proc=3Dproc@entry=3D0x7ffaed77b580 , data=3Ddata@entry= =3D0x0) at finalizers.c:59 #9 0x00007ffaed77b985 in scm_i_new_smob (tc=3D2935, data=3D140715203757120= ) at smob.c:440 #10 0x00007ffad5e1fae4 in ?? () #11 0x00007ffaed05fd80 in ?? () #12 0x00007ffaed80f5c0 in ?? () from /gnu/store/18hp7flyb3yid3yp49i6qcdq0sb= i5l1n-guile-3.0.2/lib/libguile-3.0.so.1 #13 0x00007ffaed05fd80 in ?? () #14 0x00007ffaed748f0b in scm_jit_enter_mcode (thread=3D0x7ffaed05fd80,=20 mcode=3D0x7ffada5eaaf0 "H\203\350\020I\211\314I)\304I\203\374(\017\205\= 261") at jit.c:5777 #15 0x00007ffaed7a44c9 in vm_regular_engine (thread=3D0x304) at vm-engine.c= :360 #16 0x00007ffaed7a5175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7ffe9ad99640, nargs=3Dnargs@entry=3D2) at vm.c:1608 #17 0x00007ffaed72209a in scm_call_2 (proc=3D, arg1=3D, arg2=3D) at eval.c:503 #18 0x00007ffaed7364fe in map_proc (proc=3D, key=3D, data=3D,=20 value=3D((140715403607328) (140715509812992) (140715405240352) (1407154= 07862272) (140715403697600) (140715511169504) (140715385141440) =E2=80=A6) at hashtab.c:953 #19 0x00007ffaed7375d2 in scm_internal_hash_fold (fn=3D0x7ffaed7364f0 , closure=3D0x7ffa5353fee0,=20 init=3D, table=3D) at hashtab.c:1029 #20 0x00007ffae7dcd206 in ?? () #21 0x00007ffaed05fd80 in ?? () #22 0x00007ffaed80f5c0 in ?? () from /gnu/store/18hp7flyb3yid3yp49i6qcdq0sb= i5l1n-guile-3.0.2/lib/libguile-3.0.so.1 #23 0x00007ffaed05fd80 in ?? () #24 0x00007ffaed748f0b in scm_jit_enter_mcode (thread=3D0x7ffaed05fd80,=20 mcode=3D0x7ffad5e1e3c1 "I\211\314I)\304I\203\374@\017\214\002\002") at = jit.c:5777 #25 0x00007ffaed7a4350 in vm_regular_engine (thread=3D0x7ffae7dcd1e0) at vm= -engine.c:546 #26 0x00007ffaed7a5175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7ffe9ad99888, nargs=3Dnargs@entry=3D1) at vm.c:1608 #27 0x00007ffaed723207 in scm_primitive_eval (exp=3D) at eva= l.c:671 #28 0x00007ffaed74abcb in scm_primitive_load (filename=3D) a= t load.c:131 #29 0x00007ffaed7a3d2c in vm_regular_engine (thread=3D0x7ffaed05fd80) at vm= -engine.c:972 #30 0x00007ffaed7a5175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7ffe9ad99a58, nargs=3Dnargs@entry=3D1) at vm.c:1608 #31 0x00007ffaed723207 in scm_primitive_eval (exp=3D,=20 exp@entry=3D((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) loa= d/lang) "/home/ludo/.cache/guix/inferiors/x5fhyqwm6qwd445ftlnwxlcot77xbxxst= ysjbvnvyzuo6kp3jwpq/bin/guix") (quit)))) at eval.c:671 #32 0x00007ffaed723263 in scm_eval ( exp=3D((@ (ice-9 control) %) (begin ((@@ (ice-9 command-line) load/lang= ) "/home/ludo/.cache/guix/inferiors/x5fhyqwm6qwd445ftlnwxlcot77xbxxstysjbvn= vyzuo6kp3jwpq/bin/guix") (quit))),=20 module_or_state=3Dmodule_or_state@entry=3D#) at eval.c:705 #33 0x00007ffaed77b070 in scm_shell (argc=3D6, argv=3D0x7ffe9ad9a0c8) at sc= ript.c:357 #34 0x00007ffaed73ac0d in invoke_main_func (body_data=3D0x7ffe9ad99f60) at = init.c:308 #35 0x00007ffaed71de5a in c_body (d=3D0x7ffe9ad99ea0) at continuations.c:430 #36 0x00007ffaed7a3d2c in vm_regular_engine (thread=3D0x7ffaed05fd80) at vm= -engine.c:972 #37 0x00007ffaed7a5175 in scm_call_n (proc=3D, argv=3Dargv@e= ntry=3D0x7ffe9ad99c60, nargs=3Dnargs@entry=3D2) at vm.c:1608 #38 0x00007ffaed72209a in scm_call_2 (proc=3D, arg1=3D, arg2=3D) at eval.c:503 #39 0x00007ffaed72389a in scm_c_with_exception_handler (type=3Dtype@entry= =3D#t,=20 handler=3Dhandler@entry=3D0x7ffaed79a560 ,=20 handler_data=3Dhandler_data@entry=3D0x7ffe9ad99dd0, thunk=3Dthunk@entry= =3D0x7ffaed79a6a0 ,=20 thunk_data=3Dthunk_data@entry=3D0x7ffe9ad99dd0) at exceptions.c:170 #40 0x00007ffaed79a89d in scm_c_catch (tag=3Dtag@entry=3D#t, body=3Dbody@en= try=3D0x7ffaed71de50 ,=20 body_data=3Dbody_data@entry=3D0x7ffe9ad99ea0, handler=3Dhandler@entry= =3D0x7ffaed71e0f0 ,=20 handler_data=3Dhandler_data@entry=3D0x7ffe9ad99ea0,=20 pre_unwind_handler=3Dpre_unwind_handler@entry=3D0x7ffaed71df50 ,=20 pre_unwind_handler_data=3D0x7ffaeb326360) at throw.c:168 #41 0x00007ffaed71e403 in scm_i_with_continuation_barrier (body=3Dbody@entr= y=3D0x7ffaed71de50 ,=20 body_data=3Dbody_data@entry=3D0x7ffe9ad99ea0, handler=3Dhandler@entry= =3D0x7ffaed71e0f0 ,=20 handler_data=3Dhandler_data@entry=3D0x7ffe9ad99ea0,=20 pre_unwind_handler=3Dpre_unwind_handler@entry=3D0x7ffaed71df50 ,=20 pre_unwind_handler_data=3D0x7ffaeb326360) at continuations.c:368 #42 0x00007ffaed71e495 in scm_c_with_continuation_barrier (func=3D, data=3D) at continuations.c:464 #43 0x00007ffaed79933f in with_guile (base=3D0x7ffe9ad99f08, data=3D0x7ffe9= ad99f30) at threads.c:645 #44 0x00007ffaed678c78 in GC_call_with_stack_base () from /gnu/store/zg126cjicrpm2p6zc08ra5vh4ddag7ww-libgc-8.0.4/lib/libgc.s= o.1 #45 0x00007ffaed799658 in scm_i_with_guile (dynamic_state=3D= , data=3Ddata@entry=3D0x7ffe9ad99f30,=20 func=3Dfunc@entry=3D0x7ffaed73abf0 ) at threads.c:688 #46 scm_with_guile (func=3Dfunc@entry=3D0x7ffaed73abf0 , = data=3Ddata@entry=3D0x7ffe9ad99f60) at threads.c:694 #47 0x00007ffaed73ad82 in scm_boot_guile (argc=3Dargc@entry=3D6, argv=3Darg= v@entry=3D0x7ffe9ad9a0c8,=20 main_func=3Dmain_func@entry=3D0x401240 , closure=3Dclosure@= entry=3D0x0) at init.c:291 #48 0x0000000000401100 in main (argc=3D6, argv=3D0x7ffe9ad9a0c8) at guile.c= :95 --8<---------------cut here---------------end--------------->8--- It could be an unbounded growth of libgc=E2=80=99s finalizer table or our w= eak tables as we experienced in . We should be able to reproduce it with something like: guix time-machine --commit=3Dd523eb5c9c2659cbbaf4eeef3691234ae527ee6a -- \ lint -c inputs-should-be-native,license,mirror-url,source-file-name,sou= rce-unstable-tarball,derivation,patch-file-names,formatting,synopsis In top one can see that heap usage keeps growing, which may well be a bug in Guix proper rather than in Guile=E2=80=A6 but it doesn=E2=80=99t cra= sh. I would propose three actions here: 1. Run linters un =E2=80=98gcprof=E2=80=99 to see what=E2=80=99s eating m= emory and hopefully find and address the leak. As a start, maybe just start reducing the list of checkers to see if there=E2=80=99s one of them that=E2=80= =99s causing it. The =E2=80=98derivation=E2=80=99 checker is definitely responsible for= a lot of the heap consumption because of the various caches in (guix packages) & co. Perhaps add calls to =E2=80=98invalidate-derivation-caches!=E2=80= =99 as in (gnu ci). 2. Work around the problem in Guix Data Service by running, say, one inferior per checker instead of one inferior for all checkers for all packages. 3. If #1 didn=E2=80=99t help, let=E2=80=99s see if we can isolate a Guile= weak-table bug or something like that. Thoughts? Ludo=E2=80=99.