[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#49367: Bootstrap binaries affected by spawni.c bug in glibc <= 2.26
From: |
Ludovic Courtès |
Subject: |
bug#49367: Bootstrap binaries affected by spawni.c bug in glibc <= 2.26 |
Date: |
Sat, 03 Jul 2021 23:26:37 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
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’.
- bug#49367: Bootstrap binaries affected by spawni.c bug in glibc <= 2.26,
Ludovic Courtès <=