Bug 1243788

Summary: wait fails on pid of co-process in interactive mode
Product: Red Hat Enterprise Linux 7 Reporter: Martin Kyral <mkyral>
Component: mkshAssignee: Michal Hlavinka <mhlavink>
Status: CLOSED ERRATA QA Contact: Jan Kepler <jkejda>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.1CC: jkejda, mhlavink, ovasik
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: mksh-46-7.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 726199 Environment:
Last Closed: 2018-04-10 17:44:24 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    
Bug Blocks: 728900, 799362, 1465925, 1473612    

Description Martin Kyral 2015-07-16 10:06:00 UTC
The same bug is present in mksh (in interactive mode only)

+++ 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 |&a
    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."

---------------

Version-Release number of selected component (if applicable):
mksh-46-5.el7

How reproducible:
Always

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

Expected results:
wait returns status of specified command

Comment 7 errata-xmlrpc 2018-04-10 17:44:24 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.

https://access.redhat.com/errata/RHBA-2018:0951