-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 1/18/13 1:30 AM, Mike Frysinger wrote:
> 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.

Why is open returning -1/EINTR when the SIGCHLD handler is installed with
SA_RESTART?  The intent is that opens get restarted even when bash handles
SIGCHLD.

Chet
- -- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlD5RiQACgkQu1hp8GTqdKsDAQCfSmYJQ496xiEx9YkoZFSQbuuP
eFoAmwTtlaTlHHSyqTakj9KjgOmGdgMP
=auX8
-----END PGP SIGNATURE-----

Reply via email to