Bug 728900

Summary: wait fails on pid of co-process
Product: Red Hat Enterprise Linux 6 Reporter: Michal Hlavinka <mhlavink>
Component: kshAssignee: Michal Hlavinka <mhlavink>
Status: CLOSED ERRATA QA Contact: qe-baseos-tools-bugs
Severity: high Docs Contact:
Priority: medium    
Version: 6.0CC: mfranc, mjetzer.cdc, ovasik, prc
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 726199
: 799362 (view as bug list) Environment:
Last Closed: 2011-12-06 16:25:07 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 726199, 1243788, 1243789    
Bug Blocks: 799362    

Description Michal Hlavinka 2011-08-08 10:49:58 UTC
+++ This bug was initially created as a clone of Bug #726199 +++

Description of problem:

Performing a wait on the pid of a co-process fails in the following circumstance:
    #! /bin/ksh

    ls -l |&
    pid=$!

    tee -a /tmp/out <&p

    wait $pid
    print $?

The wait's return value is always 127.  It does not matter whether the co-process exits with a successful value (e.g., "ls -l") or an unsuccessful value (e.g., "ls -l does-not-exist"); 127 is always returned.

POSIX documentation on wait(1) (http://pubs.opengroup.org/onlinepubs/009695399/utilities/wait.html) states "If one or more pid operands are specified that represent unknown process IDs, wait shall treat them as if they were known process IDs that exited with exit status 127" and later on (in "Exit Status") indicates that 127 is returned only if "[t]he command identified by the last pid operand specified is unknown."

We are porting our application to Linux and ran across this problem.  The sample code works correctly under the Korn shell (ksh88) supplied by AIX, HP-UX, and Solaris.  It also works correctly under the pdksh-5.2.14-30.6 distributed with RHEL 4.8.


Version-Release number of selected component (if applicable):

I've compiled a number of different ksh SRPMS.  The problem is present in ksh-20100202-1.el5 and persists in ksh-20100202-1.el5_6.6, as well in ksh-20100621-2.el6 and ksh-20100621-6.el6.  However, the problem is not present in ksh-20080202-2.el5 or ksh-20080202-2.el5_3.1.


How reproducible:
Always

Steps to Reproduce:
Run sample code above.
  
Actual results:
Return value of wait is always 127.

Expected results:
wait returns status of specified command

Comment 4 errata-xmlrpc 2011-12-06 16:25:07 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2011-1647.html