Subject: bug#52060: [core-updates-frozen] Guile crash during evaluation on Cuirass

From: Ludovic Courtès <[email-masked]>
Date: Tue, 23 Nov 2021 15:46:55 +0100

Guile aborts while evaluating commit
b15e543d303ea58fdc0f0541c708389f9d513e3d of ‘core-updates-frozen’:

--8<---------------cut here---------------start------------->8---
ludo@berlin ~/src/guix$ sudo su -s /bin/sh - cuirass
-sh-5.0$ ulimit -c unlimited
-sh-5.0$ cuirass evaluate "dbname=cuirass host=/tmp" 47017
Computing Guix derivation for 'x86_64-linux'... |
Aborted (core dumped)
--8<---------------cut here---------------end--------------->8---

(BTW, <https://ci.guix.gnu.org/eval/47017/log/raw> is truncated; would
be nice to avoid that and display the exit status of the “cuirass
evaluate” process at the end.)

>From GDB:

--8<---------------cut here---------------start------------->8---
(gdb) info threads
  Id   Target Id                         Frame 
* 1    Thread 0x7fa2e7d69700 (LWP 84557) __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
  2    Thread 0x7fa31265e700 (LWP 83085) 0x00007fa31368194c in futex_wait_cancelable (private=<optimized out>, 
    expected=0, futex_word=0x7fa3136d96e8 <mark_cv+40>) at ../sysdeps/nptl/futex-internal.h:183
  3    Thread 0x7fa307da5700 (LWP 83094) 0x00007fa31368194c in futex_wait_cancelable (private=<optimized out>, 
    expected=0, futex_word=0x7fa312e61af4) at ../sysdeps/nptl/futex-internal.h:183
[...]
  106  Thread 0x7fa2bb7f6700 (LWP 84603) 0x00007fa31368194c in futex_wait_cancelable (private=<optimized out>, 
    expected=0, futex_word=0x7fa2e8d27d34) at ../sysdeps/nptl/futex-internal.h:183
  107  Thread 0x7fa2b17e2700 (LWP 84624) 0x00007fa31368194c in futex_wait_cancelable (private=<optimized out>, 
    expected=0, futex_word=0x7fa2e8d5ef74) at ../sysdeps/nptl/futex-internal.h:183
  108  Thread 0x7fa2b07e0700 (LWP 84626) 0x00007fa31368194c in futex_wait_cancelable (private=<optimized out>, 
    expected=0, futex_word=0x7fa2e8d5eaf4) at ../sysdeps/nptl/futex-internal.h:183
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fa3131c1bf5 in __GI_abort () at abort.c:79
#2  0x00007fa313751e78 in scm_dynstack_unwind_1 (dynstack=dynstack@entry=0x7fa30800e688) at dynstack.c:426
#3  0x00007fa313752020 in scm_dynstack_unwind (dynstack=dynstack@entry=0x7fa30800e688, base=0x7fa2e8dc0780)
    at dynstack.c:443
#4  0x00007fa3137cfe08 in abort_to_prompt (thread=0x7fa30800e480, 
    saved_mra=0x7fa2eb20ae56 "L\213c\030I\213L$\020H\215", <incomplete sequence \315>) at vm.c:1454
#5  0x00007fa2eb20ae3f in ?? ()
#6  0x00007fa30800e480 in ?? ()
#7  0x00007fa31385e380 in ?? () from /gnu/store/hkyxill7pdyyrrqfxl4sydq5db0ljw17-guile-3.0.7/lib/libguile-3.0.so.1
#8  0x00007fa30800e480 in ?? ()
#9  0x00007fa31377d3cb in scm_jit_enter_mcode (thread=0x7fa30800e480, thread@entry=0x7fa2eb20ae10, 
    mcode=0x7fa30203fd20 "I\211\314I)\304I\203\374\020\017\214\211\021") at jit.c:6038
#10 0x00007fa3137d7bd1 in vm_regular_engine (thread=0x7fa2eb20ae10) at vm-engine.c:360
#11 0x00007fa3137d88bd in scm_call_n (proc=proc@entry=#<program 7fa2e8cc5f40>, argv=argv@entry=0x0, 
    nargs=nargs@entry=0) at vm.c:1608
#12 0x00007fa313754bc9 in scm_call_0 (proc=proc@entry=#<program 7fa2e8cc5f40>) at eval.c:490
#13 0x00007fa313746bd8 in scm_call_with_unblocked_asyncs (proc=#<program 7fa2e8cc5f40>) at async.c:406
#14 0x00007fa3137d7468 in vm_regular_engine (thread=0x7fa30800e480) at vm-engine.c:972
#15 0x00007fa3137d88bd in scm_call_n (proc=#<program 7fa2e93af0f0>, argv=argv@entry=0x0, nargs=nargs@entry=0)
    at vm.c:1608
#16 0x00007fa313754bc9 in scm_call_0 (proc=<optimized out>) at eval.c:490
#17 0x00007fa3137cc806 in really_launch (d=0x7fa2e8cb99e0) at threads.c:778
#18 0x00007fa31374fa9a in c_body (d=0x7fa2e7d68e50) at continuations.c:430
#19 0x00007fa2eb22bcc2 in ?? ()
#20 0x00007fa30800e480 in ?? ()
#21 0x00007fa31385e380 in ?? () from /gnu/store/hkyxill7pdyyrrqfxl4sydq5db0ljw17-guile-3.0.7/lib/libguile-3.0.so.1
#22 0x00007fa30800e480 in ?? ()
#23 0x00007fa31377d3cb in scm_jit_enter_mcode (thread=0x7fa30800e480, thread@entry=0x7fa2eb22bca0, 
    mcode=0x7fa31078a000 "I\211\314I)\304I\203\374\030\017\214$\r") at jit.c:6038
#24 0x00007fa3137d7bd1 in vm_regular_engine (thread=0x7fa2eb22bca0) at vm-engine.c:360
#25 0x00007fa3137d88bd in scm_call_n (proc=#<program 7fa31152c520>, argv=argv@entry=0x7fa2e7d68c10, 
    nargs=nargs@entry=2) at vm.c:1608
#26 0x00007fa313754c0a in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>) at eval.c:503
#27 0x00007fa31375641a in scm_c_with_exception_handler (type=type@entry=#t, 
    handler=handler@entry=0x7fa3137cdb60 <catch_post_unwind_handler>, handler_data=handler_data@entry=0x7fa2e7d68d80, 
    thunk=thunk@entry=0x7fa3137cdca0 <catch_body>, thunk_data=thunk_data@entry=0x7fa2e7d68d80) at exceptions.c:170
#28 0x00007fa3137cde9d in scm_c_catch (tag=tag@entry=#t, body=body@entry=0x7fa31374fa90 <c_body>, 
    body_data=body_data@entry=0x7fa2e7d68e50, handler=handler@entry=0x7fa31374fd30 <c_handler>, 
    handler_data=handler_data@entry=0x7fa2e7d68e50, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7fa31374fb90 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7fa3114fbb40) at throw.c:168
#29 0x00007fa313750033 in scm_i_with_continuation_barrier (body=body@entry=0x7fa31374fa90 <c_body>, 
    body_data=body_data@entry=0x7fa2e7d68e50, handler=handler@entry=0x7fa31374fd30 <c_handler>, 
    handler_data=handler_data@entry=0x7fa2e7d68e50, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7fa31374fb90 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7fa3114fbb40) at continuations.c:368
#9  0x00007fa31377d3cb in scm_jit_enter_mcode (thread=0x7fa30800e480, thread@entry=0x7fa2eb20ae10, 
    mcode=0x7fa30203fd20 "I\211\314I)\304I\203\374\020\017\214\211\021") at jit.c:6038
#10 0x00007fa3137d7bd1 in vm_regular_engine (thread=0x7fa2eb20ae10) at vm-engine.c:360
#11 0x00007fa3137d88bd in scm_call_n (proc=proc@entry=#<program 7fa2e8cc5f40>, argv=argv@entry=0x0, 
    nargs=nargs@entry=0) at vm.c:1608
#12 0x00007fa313754bc9 in scm_call_0 (proc=proc@entry=#<program 7fa2e8cc5f40>) at eval.c:490
#13 0x00007fa313746bd8 in scm_call_with_unblocked_asyncs (proc=#<program 7fa2e8cc5f40>) at async.c:406
#14 0x00007fa3137d7468 in vm_regular_engine (thread=0x7fa30800e480) at vm-engine.c:972
#15 0x00007fa3137d88bd in scm_call_n (proc=#<program 7fa2e93af0f0>, argv=argv@entry=0x0, nargs=nargs@entry=0)
    at vm.c:1608
#16 0x00007fa313754bc9 in scm_call_0 (proc=<optimized out>) at eval.c:490
#17 0x00007fa3137cc806 in really_launch (d=0x7fa2e8cb99e0) at threads.c:778
#18 0x00007fa31374fa9a in c_body (d=0x7fa2e7d68e50) at continuations.c:430
#19 0x00007fa2eb22bcc2 in ?? ()
#20 0x00007fa30800e480 in ?? ()
#21 0x00007fa31385e380 in ?? () from /gnu/store/hkyxill7pdyyrrqfxl4sydq5db0ljw17-guile-3.0.7/lib/libguile-3.0.so.1
#22 0x00007fa30800e480 in ?? ()
#23 0x00007fa31377d3cb in scm_jit_enter_mcode (thread=0x7fa30800e480, thread@entry=0x7fa2eb22bca0, 
    mcode=0x7fa31078a000 "I\211\314I)\304I\203\374\030\017\214$\r") at jit.c:6038
#24 0x00007fa3137d7bd1 in vm_regular_engine (thread=0x7fa2eb22bca0) at vm-engine.c:360
#25 0x00007fa3137d88bd in scm_call_n (proc=#<program 7fa31152c520>, argv=argv@entry=0x7fa2e7d68c10, 
    nargs=nargs@entry=2) at vm.c:1608
#26 0x00007fa313754c0a in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>) at eval.c:503
#27 0x00007fa31375641a in scm_c_with_exception_handler (type=type@entry=#t, 
    handler=handler@entry=0x7fa3137cdb60 <catch_post_unwind_handler>, handler_data=handler_data@entry=0x7fa2e7d68d80, 
    thunk=thunk@entry=0x7fa3137cdca0 <catch_body>, thunk_data=thunk_data@entry=0x7fa2e7d68d80) at exceptions.c:170
#28 0x00007fa3137cde9d in scm_c_catch (tag=tag@entry=#t, body=body@entry=0x7fa31374fa90 <c_body>, 
    body_data=body_data@entry=0x7fa2e7d68e50, handler=handler@entry=0x7fa31374fd30 <c_handler>, 
    handler_data=handler_data@entry=0x7fa2e7d68e50, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7fa31374fb90 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7fa3114fbb40) at throw.c:168
#29 0x00007fa313750033 in scm_i_with_continuation_barrier (body=body@entry=0x7fa31374fa90 <c_body>, 
    body_data=body_data@entry=0x7fa2e7d68e50, handler=handler@entry=0x7fa31374fd30 <c_handler>, 
    handler_data=handler_data@entry=0x7fa2e7d68e50, 
    pre_unwind_handler=pre_unwind_handler@entry=0x7fa31374fb90 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7fa3114fbb40) at continuations.c:368
--Type <RET> for more, q to quit, c to continue without paging--
#30 0x00007fa3137500c5 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at continuations.c:464
#31 0x00007fa3137cc92f in with_guile (base=0x7fa2e7d68eb8, data=0x7fa2e7d68ee0) at threads.c:645
#32 0x00007fa3136b2a68 in GC_call_with_stack_base ()
   from /gnu/store/iycnpxxrg8m9wf9w58d6zvp9sdby6m9d-libgc-7.6.12/lib/libgc.so.1
#33 0x00007fa3137cbf9d in scm_i_with_guile (dynamic_state=<optimized out>, data=0x7fa2e8cb99e0, 
    func=0x7fa3137cc790 <really_launch>) at threads.c:688
#34 launch_thread (d=0x7fa2e8cb99e0) at threads.c:787
#35 0x00007fa31367af64 in start_thread (arg=0x7fa2e7d69700) at pthread_create.c:477
#36 0x00007fa3132809af in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
--8<---------------cut here---------------end--------------->8---

This is on berlin, which is 96 cores.  On my 4-core laptop, “make
as-derivation” works fine.

Ludo’.