[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #63070] posix_spawn fails to run a child process.

From: Paul D. Smith
Subject: [bug #63070] posix_spawn fails to run a child process.
Date: Sat, 17 Sep 2022 12:52:56 -0400 (EDT)

Follow-up Comment #3, bug #63070 (project make):

This is strange.  I looked in the glibc bug tracker and couldn't find anything
about this issue.  I also looked at the actual implementation of glibc 2.17
and it doesn't seem to me like this should happen (although I'm not a glibc
developer so I might have missed something).  I was looking at the version for
x86_64 Linux kernel though: Dmitry can you give more info about what system
you were testing on that had this issue?

The patch does clear errno before invoking posix_spawn() so it's LIKELY that
if errno is ENOEXEC after return then we had this issue, but it is true that
the value of errno is not determinate if the function returns success.

Unfortunately due to cross-compilation etc. it's not feasible to test the
runtime behavior of posix_spawn() in configure and even if it were, that would
only be relevant for the version of glibc used at compile time, which could
well not be the same version used at runtime.  So a configure check is
problematic at best.

I looked through the history of glibc and saw that posix_spawn() was
completely rewritten in glibc 2.24.  But, the issue might not be with
posix_spawn() at all, it could be in fork() or vfork().

Dmitry can you modify the code in src/job.c to remove the POSIX_SPAWN_USEVFORK
flag and see if you still see the problem with glibc 2.17?  Maybe that will
help narrow down where the problem actually is.


Reply to this item at:


Message sent via Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]