RFR(s): 8223777: In posix_spawn mode, failing to exec() jspawnhelper does not result in an error

Florian Weimer fweimer at redhat.com
Tue May 14 19:00:51 UTC 2019


* Thomas Stüfe:

> Right now I am worried more about things I cannot determine yet. Where
> before we would wait for the pipe to get broken, now we have a read
> call on the parent side, a write call on the child side, which both
> must succeed. Could they fail sporadically, e.g. due to EINTR? I know
> this sounds very vague but around this API I am super careful.

EINTR should only arrive if there's a signal handler, otherwise the
signal is either ignored or terminates the process.  I don't think
jspawnhelper installs any.  If the write fails, jspawnhelper can just
exit, and it will look like as if it had never launched (resulting in an
error).  The write-after-exec-error case is more problematic than that.

I'm working on this from the other end—adding functionality to glibc, so
that we can eliminate jspawnhelper.  But that's a more long-term effort,
of course.

Thanks,
Florian


More information about the core-libs-dev mailing list