From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25566 invoked by alias); 12 Mar 2018 14:26:59 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42453 Received: (qmail 9581 invoked by uid 1010); 12 Mar 2018 14:26:58 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.11):SA:0(-6.9/5.0):. Processed in 1.376774 secs); 12 Mar 2018 14:26:58 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,T_DKIM_INVALID, T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20180312141953euoutp017f1ed20591a0e671acfda37817cb2af9~bMhu_XUPC2479924799euoutp01J DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1520864393; bh=JS6pUR+d9pJNNPRya30eKwMIp3k7zYOfaMA4ECrvvCo=; h=Date:From:To:Subject:In-reply-to:References:From; b=dYnJi67qw4rcu5thfWs7zkm7i048SvH2A3AJS078DaolrLkISSiLi9/wNQkJt1fbo cdchhw5Pwp0T3N7bLoTXRbh9ugd6TLwYe+BXatE3KYYkCzt+a/araWMzaY2m2PzRGN D8LKhNryn8PwDWIOorPZ4fd2cIFy82ozMlGDfgGM= X-AuditID: cbfec7f2-5ffe19c000011644-84-5aa68c859629 Date: Mon, 12 Mar 2018 14:19:46 +0000 From: Peter Stephenson To: "Antoine C." , zsh-workers@zsh.org Subject: Re: [BUG?] "wait " sometimes confused with multiple childs Message-id: <20180312141946.169d63a2@camnpupstephen> In-reply-to: <1328064061.551458859.1520861039419.JavaMail.root@zimbra62-e11.priv.proxad.net> Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset="US-ASCII" Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrLIsWRmVeSWpSXmKPExsWy7djPc7qtPcuiDK78UbbYdMHe4mDzQyYH Jo/+dZ9ZPVYd/MAUwBTFZZOSmpNZllqkb5fAldE79wBjwSqOisXfJzI2MC5g62Lk5JAQMJE4 enMvkM3FISSwglHiR9d6ZgjnM6PE9FcLWWCqZq/+AZVYxihxd9FHqJZ/jBI7Nx2HypxhlJj6 /BIrhHOQUeLXhivsXYwcHCwCqhJbDtWCjGITMJSYumk2I4gtImAhsW3JYrAVwgIeEg0T94PF eYHWLfn6HMzmFIiTOP95GRvIGH4BIYkLzbYQF9lLHN1zkgmiXFDix+R7YGOYBXQktm17zA5h y0tsXvMW7DYJgQVsEk/77zFCNLtI/P63A+o1YYlXx7ewQ9gyEpcnd7NANDQzSqy9fx8aSj2M ErMWh0LY1hJ9ty8yQmzgk5i0bTozyHESArwSHW1CECUeEmcndTFB2I4SF840g80XEljPKHH0 gNgERvlZSO6eheTuWUjuXsDIvIpRPLW0ODc9tdgwL7Vcrzgxt7g0L10vOT93EyMwEZz+d/zT Dsavl5IOMQpwMCrx8Bo0L4sSYk0sK67MPcQowcGsJMJ7RxMoxJuSWFmVWpQfX1Sak1p8iFGa g0VJnDdOoy5KSCA9sSQ1OzW1ILUIJsvEwSnVwBiaztWldPTHyUKNynVNO80YM6/xh1yXq2jh 3Tk/e9lS9Z0LdV51THGw7giOi70Xd9VC4XJr3qcgp4zNW/UWNeyXufxNKn/d4Uwesf07bGur zfd1W00qe/Voz9Q7aeUWYl+/X16r8kJP8ZthkcjKK7b3Vv7fXNKtWPzn6O37uZvyi37yuUhl pimxFGckGmoxFxUnAgDDaiDzAAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrNLMWRmVeSWpSXmKPExsVy+t/xq7rNPcuiDFrWWlpsumBvcbD5IZMD k0f/us+sHqsOfmAKYIrisklJzcksSy3St0vgyuide4CxYBVHxeLvExkbGBewdTFyckgImEjM Xv2DuYuRi0NIYAmjxPKvJ1ghnAYmiUMHv7BDOOcYJZ5NXs8C4RxklHi35QNQGQcHi4CqxJZD tSCj2AQMJaZums0IYosIWEhsW7KYBcQWFvCQaJi4HyzOC7RuydfnjCCtnAJxEh1LnCBGbmSU uHr7GRtInF9ASOJCsy3EdfYSR/ecZIJoFZT4Mfke2EhmAS2JzduaWCFseYnNa94yg9hCAuoS N+7uZp/AKDQLScssJC2zkLQsYGRexSiSWlqcm55bbKRXnJhbXJqXrpecn7uJERjE24793LKD setd8CFGAQ5GJR5eg+ZlUUKsiWXFlbmHGCU4mJVEeO9oAoV4UxIrq1KL8uOLSnNSiw8xSnOw KInznjeojBISSE8sSc1OTS1ILYLJMnFwSjUwLhWy2bY6QrfUc07IE4WexRVVRfs2Oqtn1RyW sAzbc0di1qXjjI1Oj65sbHCuPNRzZC2nP9ONv9szK0+ci7jlLbH+mFd7sddqTrYpL95+XSnI JNxSd569SDieMfLypbXiJo888nqt1u/l4pcR/pddny1yqtH49iP7N0Y1t9vftD2e0h/+JWC2 EktxRqKhFnNRcSIAAAIdxF4CAAA= X-CMS-MailID: 20180312141948eucas1p232c50badd5aaeb72f685a1e903297108 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180312133446epcas1p2c0b1934921ed5c33ccf5e9aaaf9f6a9c X-RootMTR: 20180312133446epcas1p2c0b1934921ed5c33ccf5e9aaaf9f6a9c References: <1328064061.551458859.1520861039419.JavaMail.root@zimbra62-e11.priv.proxad.net> On Mon, 12 Mar 2018 14:23:59 +0100 Antoine C. wrote: > I have a problem with a script starting several subshells in > background then checking their return code. It looks like the "wait > " builtin is sometimes returning the error code of another child. > > Is it a bug or am I missing something? It's a bug. You hit a race where we record the status but don't read it back properly. Thanks, I had no problem investigating with that script. pws diff --git a/Src/jobs.c b/Src/jobs.c index 503618f..330ee6b 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -2289,8 +2289,11 @@ bin_fg(char *name, char **argv, Options ops, int func) */ retval = waitforpid(pid, 1); } - if (retval == 0) - retval = lastval2; + if (retval == 0) { + if ((retval = getbgstatus(pid)) < 0) { + retval = lastval2; + } + } } else if ((retval = getbgstatus(pid)) < 0) { zwarnnam(name, "pid %d is not a child of this shell", pid); /* presumably lastval2 doesn't tell us a heck of a lot? */