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

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to