GNU bug report logs -
#55441
Use of 'primitive-fork' in (guix inferior) leads to hangs in 'cuirass evaluate'
Previous Next
Full log
Message #85 received at 55441 <at> debbugs.gnu.org (full text, mbox):
Hi there!
I have some good news! Time has passed but we didn’t remain idle :-)
and the scary bug at <https://issues.guix.gnu.org/55441> is finding a
happy end!
First, Josselin introduced bindings to ‘posix_spawn’¹ in Guile, to use
as the foundation of a new ‘spawn’ procedure, but also for ‘system*’,
‘open-pipe*’, & co.:
https://issues.guix.gnu.org/52835
That’s big deal because ‘posix_spawn’ is usable in a multi-threaded
context (POSIX doesn’t explicitly say so, but it stems from the fact
that what happens in the child process before ‘exec’ is “safe”, and in
particular Guile code doesn’t get a chance to run).
Guile 3.0.9 released yesterday includes those changes.
Then we have this commit, where I changed ‘open-bidirectional-pipe’ in
(guix inferior) to use ‘spawn’ where available:
fed3953d70 inferior: Use 'spawn' on Guile 3.0.9+.
That solves the problem that led to this bug.
Last, we have this update:
230de2e94b gnu: guix: Update to d5fece6.
It gives us a ‘guix’ package that contains the ‘spawn’ fix and removes
‘guix-for-cuirass’, which is now longer necessary.
Thanks everyone for the team work, very nice when working on touch
issues like this one!
Ludo’.
¹ https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html
This bug report was last modified 2 years and 121 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.