[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31925: 'guix substitutes' sometimes hangs on glibc 2.27
From: |
Ludovic Courtès |
Subject: |
bug#31925: 'guix substitutes' sometimes hangs on glibc 2.27 |
Date: |
Thu, 05 Jul 2018 14:27:20 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
Hello,
Andy Wingo <address@hidden> skribis:
> On Thu 05 Jul 2018 05:33, Mark H Weaver <address@hidden> 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’t see a warning.
But as a Guile user, I shouldn’t see a warning just because there’s a
signal thread anyway; it’s not a thread I spawned myself.
The weird thing is that the signal thread always exists, and it’s
surprising IMO that it shows up in ‘scm_all_threads’ because it’s not a
“user thread”. The other surprise is that the warning isn’t 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 = (#<thread 140488743438080 (1b06c40)> #<thread 140488815434624 (1b06e00)>)
scheme@(guile-user)> (when (zero? (primitive-fork)) (primitive-_exit 0))
;; no warning
--8<---------------cut here---------------end--------------->8---
Ludo’, surprised. :-)