this is somewhat a continuation of this thread: http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00091.html
i've gotten more or less the same report in Gentoo: http://bugs.gentoo.org/447810 the simple test case is: $ cat test.sh #!/bin/bash while :; do (:)& (:)& (:)& (:)& (:)& (:)& (:)& (:)& (:)& (:)& while read x ; do : ; done < <(echo foo) done execute `./test.sh` and we see failures pretty much all the time. a simple patch to workaround/fix the issue by Yuta SATOH: --- bash-4.2/redir.c +++ bash-4.2/redir.c @@ -632,7 +632,9 @@ } else { - fd = open (filename, flags, mode); + do { + fd = open (filename, flags, mode); + } while ((fd < 0) && (errno == EINTR)); #if defined (AFS) if ((fd < 0) && (errno == EACCES)) { but we're not sure if this is the route to take ? seems like if bash is handling SIGCHLD, there's no avoiding this sort of check. -mike
signature.asc
Description: This is a digitally signed message part.