Red Hat Bugzilla – Bug 55100
command substitution may fail (same as bug 8266)
Last modified: 2007-04-18 12:37:46 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.77 [en] (X11; U; Linux 2.2.17-14 i686)
Description of problem:
command substitution (using eval or ``) may fail with "Can't reopen
pipe to command substitution", due to a race between a call to
fdopen() and the SIGCHLD signal handler
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Do this in a bash shell
while :; do x=`echo abc`; if [ "$x" != abc ] ; then echo oops ; fi ;done
and then wait ...
Actual Results: After a while you'll get an oops ...
Expected Results: No oops'es
See bug 8266
This bug only mentions RedHat Linux 6.0, but the bug still
exists in the bash that comes with RedHat Linux 6.2, which
means that, since 6.2 is the last of the 6.x series, the bug
should be fixed. It cannot be ignored on the grounds that 6.0
is no longer a supported version of RedHat Linux. RHL 6.2 is.
Since this is not a security bug, there's no immediate need for an errata.
The solution is to use bash 2.x (which is included in 6.2, as well, and is the
only bash in more current releases).