On Sun, Apr 01, 2012 at 11:06:22AM -0400, Chet Ramey wrote: > On 4/1/12 5:53 AM, Andreas Schwab wrote: > > >> It looks like a simple race condition. I suspect that the scheduler > >> arranges things so that the child process ends up exiting between the > >> open and the read, but I don't have any real evidence to back it up. > > > > Note that the opening of the pipe as part of the redirection in the > > parent blocks until there is a writer, ie. until the child opens the > > pipe. Can this open call return EINTR? > > open() is supposed to return EINTR only if interrupted by a signal. The > only signal I can see occurring is SIGCHLD, and bash installs the SIGCHLD > handler with SA_RESTART.
Then, any idea of what can be happening?