From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#31925: 'guix substitutes' sometimes hangs on glibc 2.27 Date: Thu, 21 Jun 2018 13:45:12 +0200 Message-ID: <87bmc4748n.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41578) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVy2P-0004GH-Fb for bug-guix@gnu.org; Thu, 21 Jun 2018 07:46:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVy2M-000765-AF for bug-guix@gnu.org; Thu, 21 Jun 2018 07:46:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:50407) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fVy2M-00075h-53 for bug-guix@gnu.org; Thu, 21 Jun 2018 07:46:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fVy2L-0005HC-UM for bug-guix@gnu.org; Thu, 21 Jun 2018 07:46:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41337) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVy1e-0003Zq-6M for bug-guix@gnu.org; Thu, 21 Jun 2018 07:45:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fVy1b-0006gg-1k for bug-guix@gnu.org; Thu, 21 Jun 2018 07:45:18 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:45860) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fVy1a-0006gW-Su for bug-guix@gnu.org; Thu, 21 Jun 2018 07:45:14 -0400 Received: from [193.50.110.137] (port=58118 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1fVy1a-0003NJ-BH for bug-guix@gnu.org; Thu, 21 Jun 2018 07:45:14 -0400 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.org@gnu.org Sender: "bug-Guix" To: 31925@debbugs.gnu.org Hello Guix! When downloading a number of substitutes, =E2=80=98guix substitute=E2=80=99= sometimes hangs for me since the switch to glibc 2.27. Anyone else experiencing this? It=E2=80=99s relatively frequent for me. The backtrace shows this: --8<---------------cut here---------------start------------->8--- (gdb) bt #0 0x00007fbb34bf794d in __GI___pthread_timedjoin_ex (threadid=3D140441961= 314048, thread_return=3Dthread_return@entry=3D0x0, abstime=3Dabstime@entry= =3D0x0, block=3Dblock@entry=3Dtrue) at pthread_join_common.c:89 #1 0x00007fbb34bf773c in __pthread_join (threadid=3D, threa= d_return=3Dthread_return@entry=3D0x0) at pthread_join.c:24 #2 0x00007fbb350d7548 in stop_finalization_thread () at finalizers.c:265 #3 0x00007fbb350d7759 in scm_i_finalizer_pre_fork () at finalizers.c:290 #4 0x00007fbb3514f256 in scm_fork () at posix.c:1222 #5 0x00007fbb351477fd in vm_regular_engine (thread=3D0x7fbb313739d0, vp=3D= 0x1569f30, registers=3D0x52de, resume=3D884963661) at vm-engine.c:784 #6 0x00007fbb3514ae5a in scm_call_n (proc=3D0x7fbb355c2030, argv=3Dargv@en= try=3D0x7fff856ae7f8, nargs=3Dnargs@entry=3D1) at vm.c:1257 #7 0x00007fbb350ceff7 in scm_primitive_eval (exp=3Dexp@entry=3D0x164fb00) = at eval.c:662 #8 0x00007fbb350cf053 in scm_eval (exp=3D0x164fb00,=20 module_or_state=3Dmodule_or_state@entry=3D0x162b140) at eval.c:696 #9 0x00007fbb3511a0b0 in scm_shell (argc=3D10, argv=3D0x15f0390) at script= .c:454 #10 0x00007fbb350e5add in invoke_main_func (body_data=3D0x7fff856aed10) at = init.c:340 #11 0x00007fbb350c82da in c_body (d=3D0x7fff856aec50) at continuations.c:422 #12 0x00007fbb351477fd in vm_regular_engine (thread=3D0x7fbb313739d0, vp=3D= 0x1569f30, registers=3D0x52de, resume=3D884963661) at vm-engine.c:784 #13 0x00007fbb3514ae5a in scm_call_n (proc=3Dproc@entry=3D#, argv=3Dargv@entry=3D0x0, nargs=3Dnargs@entry=3D0) at vm.c:1257 #14 0x00007fbb350cdef9 in scm_call_0 (proc=3Dproc@entry=3D#) at eval.c:481 #15 0x00007fbb3513a026 in catch (tag=3Dtag@entry=3D#t, thunk=3D#, handler=3D0x15641e0,=20 pre_unwind_handler=3D0x15641c0) at throw.c:137 #16 0x00007fbb3513a365 in scm_catch_with_pre_unwind_handler (key=3Dkey@entr= y=3D#t, thunk=3D, handler=3D, pre_unwind_hand= ler=3D) at throw.c:254 #17 0x00007fbb3513a51f in scm_c_catch (tag=3Dtag@entry=3D#t, body=3Dbody@en= try=3D0x7fbb350c82d0 , body_data=3Dbody_data@entry=3D0x7fff856aec50= , handler=3Dhandler@entry=3D0x7fbb350c8560 ,=20 handler_data=3Dhandler_data@entry=3D0x7fff856aec50, pre_unwind_handler= =3Dpre_unwind_handler@entry=3D0x7fbb350c83c0 , pre_unwi= nd_handler_data=3D0x1564b60) at throw.c:377 #18 0x00007fbb350c88c0 in scm_i_with_continuation_barrier (body=3Dbody@entr= y=3D0x7fbb350c82d0 , body_data=3Dbody_data@entry=3D0x7fff856aec50, = handler=3Dhandler@entry=3D0x7fbb350c8560 ,=20 handler_data=3Dhandler_data@entry=3D0x7fff856aec50, pre_unwind_handler= =3Dpre_unwind_handler@entry=3D0x7fbb350c83c0 , pre_unwi= nd_handler_data=3D0x1564b60) at continuations.c:360 #19 0x00007fbb350c8955 in scm_c_with_continuation_barrier (func=3D, data=3D) at continuations.c:456 #20 0x00007fbb35138c3c in with_guile (base=3Dbase@entry=3D0x7fff856aecb8, d= ata=3Ddata@entry=3D0x7fff856aece0) at threads.c:661 #21 0x00007fbb34e2afb8 in GC_call_with_stack_base (fn=3Dfn@entry=3D0x7fbb35= 138bf0 , arg=3Darg@entry=3D0x7fff856aece0) at misc.c:1949 #22 0x00007fbb35138fd8 in scm_i_with_guile (dynamic_state=3D= , data=3Ddata@entry=3D0x7fff856aece0, func=3Dfunc@entry=3D0x7fbb350e5ac0 ) at threads.c:704 #23 scm_with_guile (func=3Dfunc@entry=3D0x7fbb350e5ac0 , = data=3Ddata@entry=3D0x7fff856aed10) at threads.c:710 #24 0x00007fbb350e5c72 in scm_boot_guile (argc=3Dargc@entry=3D7, argv=3Darg= v@entry=3D0x7fff856aee68, main_func=3Dmain_func@entry=3D0x400ce0 , closure=3Dclosure@entry=3D0x0) at init.c:323 #25 0x0000000000400b80 in main (argc=3D7, argv=3D0x7fff856aee68) at guile.c= :101 (gdb) info threads Id Target Id Frame=20 * 1 Thread 0x7fbb355cab80 (LWP 21207) "guix substitute" 0x00007fbb34bf79= 4d in __GI___pthread_timedjoin_ex (threadid=3D140441961314048, thread_retur= n=3Dthread_return@entry=3D0x0,=20 abstime=3Dabstime@entry=3D0x0, block=3Dblock@entry=3Dtrue) at pthread_j= oin_common.c:89 2 Thread 0x7fbb3342c700 (LWP 21208) ".guix-real" 0x00007fbb34bfc552 in= futex_wait_cancelable (private=3D, expected=3D0, futex_word= =3D0x7fbb3504f6ec ) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 3 Thread 0x7fbb32c2b700 (LWP 21209) ".guix-real" 0x00007fbb34bfc552 in= futex_wait_cancelable (private=3D, expected=3D0, futex_word= =3D0x7fbb3504f6ec ) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 4 Thread 0x7fbb3242a700 (LWP 21210) ".guix-real" 0x00007fbb34bfc552 in= futex_wait_cancelable (private=3D, expected=3D0, futex_word= =3D0x7fbb3504f6ec ) at ../sysdeps/unix/sysv/linux/futex-internal.h:88 5 Thread 0x7fbb2eb78700 (LWP 21212) ".guix-real" 0x00007fbb34bffaac in= __libc_read (fd=3D9, buf=3Dbuf@entry=3D0x7fbb2eb77540, nbytes=3Dnbytes@ent= ry=3D1) at ../sysdeps/unix/sysv/linux/read.c:27 6 Thread 0x7fbb31373700 (LWP 21214) "guix substitute" 0x00007fbb34bffa= ac in __libc_read (fd=3D5, buf=3Dbuf@entry=3D0x7fbb31372a30, nbytes=3Dnbyte= s@entry=3D1) at ../sysdeps/unix/sysv/linux/read.c:27 --8<---------------cut here---------------end--------------->8--- The finalization thread is itself stuck reading from its pipe: --8<---------------cut here---------------start------------->8--- (gdb) thread 6 [Switching to thread 6 (Thread 0x7fbb31373700 (LWP 21214))] #0 0x00007fbb34bffaac in __libc_read (fd=3D5, buf=3Dbuf@entry=3D0x7fbb3137= 2a30, nbytes=3Dnbytes@entry=3D1) at ../sysdeps/unix/sysv/linux/read.c:27 27 in ../sysdeps/unix/sysv/linux/read.c (gdb) bt #0 0x00007fbb34bffaac in __libc_read (fd=3D5, buf=3Dbuf@entry=3D0x7fbb3137= 2a30, nbytes=3Dnbytes@entry=3D1) at ../sysdeps/unix/sysv/linux/read.c:27 #1 0x00007fbb350d74d7 in read_finalization_pipe_data (data=3D0x7fbb31372a3= 0) at finalizers.c:199 #2 0x00007fbb34e30b63 in GC_do_blocking_inner (data=3D0x7fbb313729f0 "\300= t\r5\273\177", context=3D) at pthread_support.c:1353 #3 0x00007fbb34e25389 in GC_with_callee_saves_pushed (fn=3D0x7fbb34e30b20 = , arg=3Darg@entry=3D0x7fbb313729f0 "\300t\r5\273\177"= ) at mach_dep.c:322 #4 0x00007fbb34e2afec in GC_do_blocking (fn=3Dfn@entry=3D0x7fbb350d74c0 , client_data=3Dclient_data@entry=3D0x7fbb31372a= 30) at misc.c:2061 #5 0x00007fbb3513902a in scm_without_guile (func=3D0x7fbb350d74c0 , data=3D0x7fbb31372a30) at threads.c:722 #6 0x00007fbb350d7887 in finalization_thread_proc (unused=3D) at finalizers.c:212 #7 0x00007fbb350c82da in c_body (d=3D0x7fbb31372e50) at continuations.c:422 #8 0x00007fbb351477fd in vm_regular_engine (thread=3D0x5, vp=3D0x172aea0, = registers=3D0x1, resume=3D884996780) at vm-engine.c:784 #9 0x00007fbb3514ae5a in scm_call_n (proc=3Dproc@entry=3D#, argv=3Dargv@entry=3D0x0, nargs=3Dnargs@entry=3D0) at vm.c:1257 #10 0x00007fbb350cdef9 in scm_call_0 (proc=3Dproc@entry=3D#) at eval.c:481 #11 0x00007fbb3513a026 in catch (tag=3Dtag@entry=3D#t, thunk=3D#, handler=3D0x1c1ff40,=20 pre_unwind_handler=3D0x1c1ff00) at throw.c:137 #12 0x00007fbb3513a365 in scm_catch_with_pre_unwind_handler (key=3Dkey@entr= y=3D#t, thunk=3D, handler=3D, pre_unwind_hand= ler=3D) at throw.c:254 #13 0x00007fbb3513a51f in scm_c_catch (tag=3Dtag@entry=3D#t, body=3Dbody@en= try=3D0x7fbb350c82d0 , body_data=3Dbody_data@entry=3D0x7fbb31372e50= , handler=3Dhandler@entry=3D0x7fbb350c8560 ,=20 handler_data=3Dhandler_data@entry=3D0x7fbb31372e50, pre_unwind_handler= =3Dpre_unwind_handler@entry=3D0x7fbb350c83c0 , pre_unwi= nd_handler_data=3D0x1564b60) at throw.c:377 #14 0x00007fbb350c88c0 in scm_i_with_continuation_barrier (body=3Dbody@entr= y=3D0x7fbb350c82d0 , body_data=3Dbody_data@entry=3D0x7fbb31372e50, = handler=3Dhandler@entry=3D0x7fbb350c8560 ,=20 handler_data=3Dhandler_data@entry=3D0x7fbb31372e50, pre_unwind_handler= =3Dpre_unwind_handler@entry=3D0x7fbb350c83c0 , pre_unwi= nd_handler_data=3D0x1564b60) at continuations.c:360 #15 0x00007fbb350c8955 in scm_c_with_continuation_barrier (func=3D, data=3D) at continuations.c:456 #16 0x00007fbb35138c3c in with_guile (base=3Dbase@entry=3D0x7fbb31372eb8, d= ata=3Ddata@entry=3D0x7fbb31372ee0) at threads.c:661 #17 0x00007fbb34e2afb8 in GC_call_with_stack_base (fn=3Dfn@entry=3D0x7fbb35= 138bf0 , arg=3Darg@entry=3D0x7fbb31372ee0) at misc.c:1949 #18 0x00007fbb35138fd8 in scm_i_with_guile (dynamic_state=3D= , data=3D, func=3D) at threads.c:704 #19 scm_with_guile (func=3D, data=3D) at thre= ads.c:710 #20 0x00007fbb34bf6567 in start_thread (arg=3D0x7fbb31373700) at pthread_cr= eate.c:463 #21 0x00007fbb3351eeaf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clo= ne.S:95 --8<---------------cut here---------------end--------------->8--- The =E2=80=98primitive-fork=E2=80=99 call itself presumably comes from =E2=80=98decompressed-port=E2=80=99, used in (guix scripts substitute). Ludo=E2=80=99.