GNU bug report logs - #49367
Bootstrap binaries affected by spawni.c bug in glibc <= 2.26

Previous Next

Package: guix;

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

Date: Sat, 3 Jul 2021 21:27:01 UTC

Severity: important

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 49367 in the body.
You can then email your comments to 49367 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#49367; Package guix. (Sat, 03 Jul 2021 21:27:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Sat, 03 Jul 2021 21:27:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: bug-guix <at> gnu.org
Subject: Bootstrap binaries affected by spawni.c bug in glibc <= 2.26
Date: Sat, 03 Jul 2021 23:26:37 +0200
While building ‘findutils-boot0’ & co. for AArch64 on ci.guix, where
some of the aarch64-linux nodes are emulated, I hit failures like this
one a few times:

--8<---------------cut here---------------start------------->8---
starting phase `build'
make: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed.
qemu: uncaught target signal 6 (Aborted) - core dumped
error: in phase 'build': uncaught exception:
srfi-34 #<condition &invoke-error [program: "make" arguments: ("-j" "24") exit-status: #f term-signal: 6 stop-signal: #f] 149e880> 
phase `build' failed after 0.1 seconds
command "make" "-j" "24" failed with signal 6
builder for `/gnu/store/rkkgavlyvf06sfdnxlfqb11bljf989y1-findutils-boot0-4.8.0.drv' failed with exit code 1
--8<---------------cut here---------------end--------------->8---

These are traces of a ‘posix_spawn’ bug that was present in glibc 2.26,
a race condition that would manifest primarily on qemu-binfmt builds:

  https://issues.guix.gnu.org/30394

The thread above mentioned that Bison was one of the very few
‘posix_spawn’ users, so it wasn’t much of a problem.

However, it turns out that (1) we’re using Make 4.3, which uses
‘posix_spawn’ by default, and (2) our bootstrap glibc for AArch64 is
affected:

--8<---------------cut here---------------start------------->8---
$ guix gc --references /gnu/store/rkkgavlyvf06sfdnxlfqb11bljf989y1-findutils-boot0-4.8.0.drv |grep make-boot0
/gnu/store/yir8j4h6prfmz18kyrsch2g7qng87g04-make-boot0-4.3.drv
$ ls $(guix build $(guix gc --references /gnu/store/rkkgavlyvf06sfdnxlfqb11bljf989y1-findutils-boot0-4.8.0.drv |grep glibc-bootstrap))/lib/libc-*.so
/gnu/store/js119fgv6n713c3lypjn7s4xv5bxf870-glibc-bootstrap-0/lib/libc-2.25.so
--8<---------------cut here---------------end--------------->8---

Possible solutions:

  0. Ignore the problem, “it’s almost only affects emulated builds
     anyway”.

  1. Update bootstrap glibc.  It’s late in the core-updates cycle, and
     it’s not something we do lightly anyway.

  2. Build ‘make-boot0’ with ‘--disable-posix-spawn’.  Best solution in
     my view.

Thoughts?

Ludo’.




Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Sat, 03 Jul 2021 21:46:02 GMT) Full text and rfc822 format available.

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sat, 03 Jul 2021 22:12:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Sat, 03 Jul 2021 22:12:02 GMT) Full text and rfc822 format available.

Message #12 received at 49367-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 49367-done <at> debbugs.gnu.org
Subject: Re: bug#49367: Bootstrap binaries affected by spawni.c bug in glibc
 <= 2.26
Date: Sun, 04 Jul 2021 00:11:05 +0200
Hi,

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

> While building ‘findutils-boot0’ & co. for AArch64 on ci.guix, where
> some of the aarch64-linux nodes are emulated, I hit failures like this
> one a few times:
>
> starting phase `build'
> make: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed.
> qemu: uncaught target signal 6 (Aborted) - core dumped
> error: in phase 'build': uncaught exception:
> srfi-34 #<condition &invoke-error [program: "make" arguments: ("-j" "24") exit-status: #f term-signal: 6 stop-signal: #f] 149e880> 
> phase `build' failed after 0.1 seconds
> command "make" "-j" "24" failed with signal 6
> builder for `/gnu/store/rkkgavlyvf06sfdnxlfqb11bljf989y1-findutils-boot0-4.8.0.drv' failed with exit code 1

[...]

>   2. Build ‘make-boot0’ with ‘--disable-posix-spawn’.  Best solution in
>      my view.

Done in f436723ce7da2f5e752f5f4b6f0d568a7bea4403!

Note that this problem is already present in current ‘master’.  Note
also that on x86 we ‘make-boot0’ is built against glibc-mesboot0-2.16,
which is much older and isn’t affected by the ‘posix_spawn’ bug, AFAICS.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 01 Aug 2021 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 241 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.