GNU bug report logs -
#49367
Bootstrap binaries affected by spawni.c bug in glibc <= 2.26
Previous Next
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.
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):
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):
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.