GNU bug report logs -
#30394
'posix_spawn' glibc 2.26 race condition fires under qemu-binfmt
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 30394 in the body.
You can then email your comments to 30394 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#30394
; Package
guix
.
(Thu, 08 Feb 2018 16:44:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Danny Milosavljevic <dannym <at> scratchpost.org>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Thu, 08 Feb 2018 16:44:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi ng0,
On Tue, 06 Feb 2018 10:33:56 +0000
ng0 <at> n0.is wrote:
> recently I've read about slow but native compiling of ARM on qemu.
Unfortunately, there's a (pretty reproducible) problem with it.
guix-master/guix $ ./pre-inst-env guix system disk-image --system=armhf-linux -e "(@ (gnu system install) installation-os)"
[... building grub-2.02 ...]
phase `configure' succeeded after 821.8 seconds
starting phase `patch-generated-file-shebangs'
patch-makefile-SHELL: ./po/Makefile: changing `SHELL' from `/bin/sh' to `/gnu/st[...]
phase `patch-generated-file-shebangs' succeeded after 14.6 seconds
starting phase `build'
bison -d -p grub_script_yy -b grub_script ./grub-core/script/parser.y
flex -o grub_script.yy.c --header-file=grub_script.yy.h ./grub-core/script/yylex[...]
bison: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed
This is only fixed in glibc 2.27 (not in core-updates).
The fix is:
https://sourceware.org/bugzilla/show_bug.cgi?id=22273
diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
index dea1650..f02ac19 100644
--- a/sysdeps/unix/sysv/linux/spawni.c
+++ b/sysdeps/unix/sysv/linux/spawni.c
@@ -365,9 +365,15 @@ __spawnix (pid_t * pid, const char *file,
if (new_pid > 0)
{
ec = args.err;
- assert (ec >= 0);
if (ec != 0)
- __waitpid (new_pid, NULL, 0);
+ {
+ /* It handles the unlikely case where the auxiliary vfork process
+ is killed before calling _exit or execve. */
+ int status;
+ __waitpid (new_pid, &status, 0);
+ if (WIFSIGNALED (status))
+ ec = 0;
+ }
}
else
ec = -new_pid;
Information forwarded
to
bug-guix <at> gnu.org
:
bug#30394
; Package
guix
.
(Sat, 10 Feb 2018 23:46:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Danny Milosavljevic <dannym <at> scratchpost.org> writes:
> This is only fixed in glibc 2.27 (not in core-updates).
Should we upgrade glibc in core-updates, then? Or is it better to do it
in the next core-updates cycle, to avoid still more unexpected breakage?
--
Chris
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#30394
; Package
guix
.
(Sun, 11 Feb 2018 01:08:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 30394 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Sun, Feb 11, 2018 at 12:45:18AM +0100, Chris Marusich wrote:
> Danny Milosavljevic <dannym <at> scratchpost.org> writes:
>
> > This is only fixed in glibc 2.27 (not in core-updates).
>
> Should we upgrade glibc in core-updates, then? Or is it better to do it
> in the next core-updates cycle, to avoid still more unexpected breakage?
It's too late in this cycle. Upgrading glibc would require a full
rebuild and would introduce new failures.
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#30394
; Package
guix
.
(Sun, 11 Feb 2018 09:58:01 GMT)
Full text and
rfc822 format available.
Message #14 received at submit <at> debbugs.gnu.org (full text, mbox):
On Sun, Feb 11, 2018 at 12:45:18AM +0100, Chris Marusich wrote:
> Danny Milosavljevic <dannym <at> scratchpost.org> writes:
>
> > This is only fixed in glibc 2.27 (not in core-updates).
>
> Should we upgrade glibc in core-updates, then? Or is it better to do it
> in the next core-updates cycle, to avoid still more unexpected breakage?
I think we should not update packages deep in the tree unless there is
a security patch. What we have now is well tested.
Pj.
--
Information forwarded
to
bug-guix <at> gnu.org
:
bug#30394
; Package
guix
.
(Fri, 16 Feb 2018 10:36:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 30394 <at> debbugs.gnu.org (full text, mbox):
Hello,
Danny Milosavljevic <dannym <at> scratchpost.org> skribis:
> Unfortunately, there's a (pretty reproducible) problem with it.
>
> guix-master/guix $ ./pre-inst-env guix system disk-image --system=armhf-linux -e "(@ (gnu system install) installation-os)"
> [... building grub-2.02 ...]
> phase `configure' succeeded after 821.8 seconds
> starting phase `patch-generated-file-shebangs'
> patch-makefile-SHELL: ./po/Makefile: changing `SHELL' from `/bin/sh' to `/gnu/st[...]
> phase `patch-generated-file-shebangs' succeeded after 14.6 seconds
> starting phase `build'
> bison -d -p grub_script_yy -b grub_script ./grub-core/script/parser.y
> flex -o grub_script.yy.c --header-file=grub_script.yy.h ./grub-core/script/yylex[...]
> bison: ../sysdeps/unix/sysv/linux/spawni.c:360: __spawnix: Assertion `ec >= 0' failed
[...]
> https://sourceware.org/bugzilla/show_bug.cgi?id=22273
> diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c
> index dea1650..f02ac19 100644
> --- a/sysdeps/unix/sysv/linux/spawni.c
> +++ b/sysdeps/unix/sysv/linux/spawni.c
> @@ -365,9 +365,15 @@ __spawnix (pid_t * pid, const char *file,
> if (new_pid > 0)
> {
> ec = args.err;
> - assert (ec >= 0);
> if (ec != 0)
Note that this is only a problem for code that uses the ‘posix_spawn’
interface, such as Bison in the example above.
In practice that interface is rarely used, which is probably why I never
hit that assertion before.
Ludo’.
Changed bug title to ''posix_spawn' glibc 2.26 race condition fires under qemu-binfmt' from 'ARM compilation via qemu binfmt - Assertion failure'
Request was from
ludo <at> gnu.org (Ludovic Courtès)
to
control <at> debbugs.gnu.org
.
(Fri, 09 Mar 2018 12:37:02 GMT)
Full text and
rfc822 format available.
Added tag(s) notabug.
Request was from
Ludovic Courtès <ludo <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Fri, 31 Jan 2020 17:43:01 GMT)
Full text and
rfc822 format available.
bug closed, send any further explanations to
30394 <at> debbugs.gnu.org and Danny Milosavljevic <dannym <at> scratchpost.org>
Request was from
Ludovic Courtès <ludo <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Fri, 31 Jan 2020 17:43:01 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 29 Feb 2020 12:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 4 years and 54 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.