GNU bug report logs - #55441
Use of 'primitive-fork' in (guix inferior) leads to hangs in 'cuirass evaluate'

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Mon, 16 May 2022 03:50:02 UTC

Severity: important

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Ludovic Courtès <ludo <at> gnu.org>
To: Josselin Poiret <dev <at> jpoiret.xyz>
Cc: 55441 <at> debbugs.gnu.org, Mathieu Othacehe <othacehe <at> gnu.org>, Christopher Baines <mail <at> cbaines.net>, Maxime Devos <maximedevos <at> telenet.be>
Subject: bug#55441: [cuirass] hang in "In progress..."; runs out of pgsql connections
Date: Thu, 26 Jan 2023 15:39:57 +0100
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.