Subject: Re: bug#74632: ‘guix publish’ crashes with “Signals delivery failsconstantly”

From: Ludovic Courtès <[email-masked]>
Date: Tue, 03 Dec 2024 17:57:23 +0100

Another one with one thread in ‘fdatasync’:

--8<---------------cut here---------------start------------->8---
(gdb) info threads
  Id   Target Id                  Frame 
  1    LWP 21492 "guix publish"   0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  2    LWP 21541 "GC-marker-0"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  3    LWP 21542 "GC-marker-1"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  4    LWP 21543 "GC-marker-2"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  5    LWP 21544 "GC-marker-3"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  6    LWP 21545 "GC-marker-4"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  7    LWP 21546 "GC-marker-5"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  8    LWP 21547 "GC-marker-6"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  9    LWP 21548 "GC-marker-7"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  10   LWP 21549 "GC-marker-8"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  11   LWP 21550 "GC-marker-9"    __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  12   LWP 21551 "GC-marker-10"   __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  13   LWP 21552 "GC-marker-11"   __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  14   LWP 21553 "GC-marker-12"   __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  15   LWP 21554 "GC-marker-13"   __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  16   LWP 21555 "GC-marker-14"   __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, 
    futex_word=0x7f2962eccbe8) at futex-internal.c:57
  17   LWP 21573 "guix"           __GI___libc_read (nbytes=1, buf=0x7f29589ffa60, fd=6) at ../sysdeps/unix/sysv/linux/read.c:26
  18   LWP 21685 "guix"           __GI___libc_read (nbytes=1, buf=0x7f2953dff6a0, fd=8) at ../sysdeps/unix/sysv/linux/read.c:26
  19   LWP 21720 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  20   LWP 21721 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  21   LWP 21722 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  22   LWP 21726 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
* 23   LWP 21730 "publish worker" __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
  24   LWP 21734 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  25   LWP 21738 "publish worker" 0x00007f2962cb57e2 in __GI___sigsuspend (set=0x7f2962eccd20) at ../sysdeps/unix/sysv/linux/sigsuspend.c:26
  26   LWP 21742 "publish worker" 0x00007f2962d69f4b in __GI_fdatasync (fd=31) at ../sysdeps/unix/sysv/linux/fdatasync.c:28
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f2962cff45f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f2962cb54c2 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007f2962c9f4a3 in __GI_abort () at abort.c:79
#4  0x00007f2962e8243a in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#5  0x00007f2962e8251d in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#6  0x00007f2962e8911a in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#7  0x00007f2962e89d54 in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#8  0x00007f2962e89ffe in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#9  0x00007f2962e8b655 in ?? () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#10 0x00007f2962e8d98b in GC_generic_malloc () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#11 0x00007f2962e8dba5 in GC_malloc_kind_global () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#12 0x00007f2962f1ed68 in make_bytevector (element_type=SCM_ARRAY_ELEMENT_TYPE_VU8, len=65536)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/bytevectors.c:243
#13 scm_make_bytevector (len=<optimized out>, fill=0x904) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/bytevectors.c:570
#14 0x00007f29617b4b4f in ?? ()
#15 0x00007f2959552d80 in ?? ()
#16 0x00007f29617fa888 in ?? ()
#17 0x0000000000000038 in ?? ()
#18 0x00007f2962f4cecc in scm_jit_enter_mcode (thread=0x7f2959552d80, mcode=0x2ed24e64 "\034\376\003")
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/jit.c:6061
#19 0x00007f2962fb6d5e in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1609
#20 0x00007f2962f1dbce in scm_call_with_unblocked_asyncs (proc=0x7f2959550f40)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/async.c:406
#21 0x00007f2962fa9370 in vm_regular_engine (thread=0x7f2959552d80) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#22 0x00007f2962fb6d85 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#23 0x00007f2962fa30d3 in really_launch (d=0x7f2959524560) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:782
#24 0x00007f2962f1feaa in c_body (d=0x7f2950bffe00) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:430
#25 0x00007f2962fa9370 in vm_regular_engine (thread=0x7f2959552d80) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#26 0x00007f2962fb6d85 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=2)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#27 0x00007f2962f2165a in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/eval.c:503
#28 0x00007f2962fc8022 in scm_c_with_exception_handler.constprop.0 (type=0x404, handler_data=handler_data@entry=0x7f2950bffd90, 
    thunk_data=thunk_data@entry=0x7f2950bffd90, thunk=<optimized out>, handler=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/exceptions.c:170
#29 0x00007f2962fa3dff in scm_c_catch (tag=<optimized out>, body=<optimized out>, body_data=<optimized out>, handler=<optimized out>, 
    handler_data=<optimized out>, pre_unwind_handler=<optimized out>, pre_unwind_handler_data=0x7f2962481500)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/throw.c:168
#30 0x00007f2962f22426 in scm_i_with_continuation_barrier (pre_unwind_handler=0x7f2962f22140 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7f2962481500, handler_data=0x7f2950bffe00, handler=0x7f2962f28c30 <c_handler>, body_data=0x7f2950bffe00, 
    body=0x7f2962f1fea0 <c_body>) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:368
#31 scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:464
#32 0x00007f2962fa3029 in with_guile (base=0x7f2950bffe88, data=0x7f2950bffeb0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:649
#33 0x00007f2962e8693a in GC_call_with_stack_base () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#34 0x00007f2962f9cc3d in scm_i_with_guile (dynamic_state=<optimized out>, data=0x7f2959524560, func=0x7f2962fa3060 <really_launch>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:692
#35 launch_thread (d=0x7f2959524560) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:791
#36 0x00007f2962cfd7f4 in start_thread (arg=<optimized out>) at pthread_create.c:447
#37 0x00007f2962d745e8 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb) thread 26
[Switching to thread 26 (LWP 21742)]
#0  0x00007f2962d69f4b in __GI_fdatasync (fd=31) at ../sysdeps/unix/sysv/linux/fdatasync.c:28
warning: 28     ../sysdeps/unix/sysv/linux/fdatasync.c: No such file or directory
(gdb) bt
#0  0x00007f2962d69f4b in __GI_fdatasync (fd=31) at ../sysdeps/unix/sysv/linux/fdatasync.c:28
#1  0x00007f2962c48052 in ?? () from /gnu/store/s6iqwc5sqjrk76kzslqc1n1wlcvfyqkw-libffi-3.4.4/lib/libffi.so.8
#2  0x00007f2962c46c85 in ?? () from /gnu/store/s6iqwc5sqjrk76kzslqc1n1wlcvfyqkw-libffi-3.4.4/lib/libffi.so.8
#3  0x00007f2962c4768e in ffi_call () from /gnu/store/s6iqwc5sqjrk76kzslqc1n1wlcvfyqkw-libffi-3.4.4/lib/libffi.so.8
#4  0x00007f2962fc6cc7 in scm_i_foreign_call.constprop.0 (cif_scm=<optimized out>, pointer_scm=<optimized out>, 
    errno_ret=errno_ret@entry=0x7f294a9ff74c, argv=0x7f2952a5fca8) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/foreign.c:1140
#5  0x00007f2962fb6f25 in foreign_call (thread=0x7f29595526c0, cif=<optimized out>, pointer=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1289
#6  0x00007f2953584ae0 in ?? ()
#7  0x00007f29595526c0 in ?? ()
#8  0x00007f29617fa888 in ?? ()
#9  0x0000000000000038 in ?? ()
#10 0x00007f2962f4cecc in scm_jit_enter_mcode (thread=0x7f29595526c0, mcode=0x7f29594d6600 "E \002")
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/jit.c:6061
#11 0x00007f2962fb6d5e in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1609
#12 0x00007f2962f1dbce in scm_call_with_unblocked_asyncs (proc=0x7f295955ff40)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/async.c:406
#13 0x00007f2962fa9370 in vm_regular_engine (thread=0x7f29595526c0) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#14 0x00007f2962fb6d85 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#15 0x00007f2962fa30d3 in really_launch (d=0x7f29595244a0) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:782
#16 0x00007f2962f1feaa in c_body (d=0x7f294a9ffe00) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:430
#17 0x00007f2962fa9370 in vm_regular_engine (thread=0x7f29595526c0) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm-engine.c:972
#18 0x00007f2962fb6d85 in scm_call_n (proc=<optimized out>, argv=<optimized out>, nargs=2)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/vm.c:1615
#19 0x00007f2962f2165a in scm_call_2 (proc=<optimized out>, arg1=<optimized out>, arg2=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/eval.c:503
#20 0x00007f2962fc8022 in scm_c_with_exception_handler.constprop.0 (type=0x404, handler_data=handler_data@entry=0x7f294a9ffd90, 
    thunk_data=thunk_data@entry=0x7f294a9ffd90, thunk=<optimized out>, handler=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/exceptions.c:170
#21 0x00007f2962fa3dff in scm_c_catch (tag=<optimized out>, body=<optimized out>, body_data=<optimized out>, handler=<optimized out>, 
    handler_data=<optimized out>, pre_unwind_handler=<optimized out>, pre_unwind_handler_data=0x7f2962481500)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/throw.c:168
#22 0x00007f2962f22426 in scm_i_with_continuation_barrier (pre_unwind_handler=0x7f2962f22140 <pre_unwind_handler>, 
    pre_unwind_handler_data=0x7f2962481500, handler_data=0x7f294a9ffe00, handler=0x7f2962f28c30 <c_handler>, body_data=0x7f294a9ffe00, 
    body=0x7f2962f1fea0 <c_body>) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:368
#23 scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/continuations.c:464
#24 0x00007f2962fa3029 in with_guile (base=0x7f294a9ffe88, data=0x7f294a9ffeb0)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:649
#25 0x00007f2962e8693a in GC_call_with_stack_base () from /gnu/store/pr73chdirm3jc2j7npc6hqzmcwjs7l8m-libgc-8.2.4/lib/libgc.so.1
#26 0x00007f2962f9cc3d in scm_i_with_guile (dynamic_state=<optimized out>, data=0x7f29595244a0, func=0x7f2962fa3060 <really_launch>)
    at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:692
#27 launch_thread (d=0x7f29595244a0) at /tmp/guix-build-guile-3.0.9.drv-0/guile-3.0.9/libguile/threads.c:791
#28 0x00007f2962cfd7f4 in start_thread (arg=<optimized out>) at pthread_create.c:447
#29 0x00007f2962d745e8 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
--8<---------------cut here---------------end--------------->8---