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, 05 Jul 2018 14:27:20 +0200 Message-ID: <87po01eul3.fsf@gnu.org> References: <87bmc4748n.fsf@gnu.org> <874lhffpnq.fsf@gnu.org> <87tvpfaqfd.fsf@gnu.org> <87efgil5jz.fsf@netris.org> <87lgaqjemj.fsf@igalia.com> 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]:60750) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fb3Ml-00080K-AX for bug-guix@gnu.org; Thu, 05 Jul 2018 08:28:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fb3Mg-0002ir-G3 for bug-guix@gnu.org; Thu, 05 Jul 2018 08:28:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:39410) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fb3Mg-0002hr-BX for bug-guix@gnu.org; Thu, 05 Jul 2018 08:28:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87lgaqjemj.fsf@igalia.com> (Andy Wingo's message of "Thu, 05 Jul 2018 10:00:52 +0200") 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: Andy Wingo Cc: 31925@debbugs.gnu.org Hello, Andy Wingo skribis: > On Thu 05 Jul 2018 05:33, Mark H Weaver writes: [...] >> Another possibility: both the finalization thread and the signal >> delivery thread call 'scm_without_guile', which calls 'GC_do_blocking', >> which also temporarily grabs the GC allocation lock before calling the >> specified function. See 'GC_do_blocking_inner' in pthread_support.c in >> libgc. You spawn the signal delivery thread by calling 'sigaction' and >> you make work for it to do every second when the SIGALRM is delivered. > > The signal thread is a possibility though in that case you'd get a > warning; the signal-handling thread appears in scm_all_threads. Do you > see a warning? If you do, that is a problem :) I don=E2=80=99t see a warning. But as a Guile user, I shouldn=E2=80=99t see a warning just because there= =E2=80=99s a signal thread anyway; it=E2=80=99s not a thread I spawned myself. The weird thing is that the signal thread always exists, and it=E2=80=99s surprising IMO that it shows up in =E2=80=98scm_all_threads=E2=80=99 becaus= e it=E2=80=99s not a =E2=80=9Cuser thread=E2=80=9D. The other surprise is that the warning isn= =E2=80=99t triggered: --8<---------------cut here---------------start------------->8--- $ guile GNU Guile 2.2.4 Copyright (C) 1995-2017 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guile-user)> (all-threads) $1 =3D (# #) scheme@(guile-user)> (when (zero? (primitive-fork)) (primitive-_exit 0)) ;; no warning --8<---------------cut here---------------end--------------->8--- Ludo=E2=80=99, surprised. :-)