From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18899 invoked by alias); 3 May 2017 10:04:48 -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: X-Seq: 41043 Received: (qmail 16942 invoked from network); 3 May 2017 10:04:48 -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(-5.0/5.0):. Processed in 1.975952 secs); 03 May 2017 10:04:48 -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=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7f4-f79806d000001279-0b-5909ab341169 Date: Wed, 03 May 2017 11:04:33 +0100 From: Peter Stephenson To: Jure Varlec , zsh-workers@zsh.org Subject: Re: Combination of pipes and &! leaks file descriptors Message-id: <20170503110433.1307fb9b@pwslap01u.europe.root.pri> In-reply-to: <20170502161925.03e9f794@leopold.lan> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWy7djPc7omqzkjDW5/kLbYPm8tm8XB5odM DkweB+ZcZfJYdfADUwBTFJdNSmpOZllqkb5dAlfG8zMaBX/YK2Y+2MnSwLiMrYuRg0NCwERi aR9LFyMnkCkmceHeeqAwF4eQwFJGiRNLjrNCOJ8ZJQ4f38MEUWUi8X77X6jEMkaJMx82M0I4 /xglvlxvYoFwTjNKfDr2mxnCOcMoMffvf1aQfhYBVYlzPw+BbWQTMJSYumk2I8ghIgKmEksv hYKYwgL2EvcuSoBU8AKZnW+vgVVzChhJ3Jy3CWwKv4C+xNW/n6AuspeYeeUMI0S9oMSPyffA 6pkFdCS2bXvMDmHLS2xe8xbsHAmBbnaJNW+6oP6Xldh0gBlijovEghV/oWYKS7w6voUdwpaR 6Ow4CBXvZ5R40u0LMWcGo8TpMzvYIBLWEn23LzJCLOOTmLRtOjPEfF6JjjYhiBIPiQV/Glgh bEeJk2f/sU5gVJyF5OxZSM6eheTsBYzMqxhFUkuLc9NTi030ihNzi0vz0vWS83M3MQLTwul/ x7/sYFx8zOoQowAHoxIP74MJHJFCrIllxZW5hxglOJiVRHgPW3NGCvGmJFZWpRblxxeV5qQW H2KU5mBREuflOnUtQkggPbEkNTs1tSC1CCbLxMEp1cDI1KmhZ/5TMuqxd+uLyeErXn0+u2pG T8l/ZX658z031uxgufAkoPT2+oBfeiyl+VLvq+9mf436Nf930UIz64lbM3QC2JWXmmlbzz1u IjZR93f9pb130tsPf1iXU37t4FPLmRtjp7fM8M9n55Owyz20K/zru4nO38ye32E+eadoZskz odch557bKbEUZyQaajEXFScCAB2+QZ8HAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLIsWRmVeSWpSXmKPExsVy+t/xK7oHVnNGGkxeL2Sxfd5aNouDzQ+Z HJg8Dsy5yuSx6uAHpgCmKDebjNTElNQihdS85PyUzLx0W6XQEDddCyWFvMTcVFulCF3fkCAl hbLEnFIgz8gADTg4B7gHK+nbJbhlPD+jUfCHvWLmg50sDYzL2LoYOTkkBEwk3m//ywphi0lc uLceKM7FISSwhFFi97ouKKeBSeLxiTcsEM5pRonzD/6wQjhnGCU+fHnHBNLPIqAqce7nIRYQ m03AUGLqptmMXYwcHCICphJLL4WCmMIC9hL3LkqAVPACmZ1vr4FVcwoYSdyctwnsCiGBdkaJ OTeYQWx+AX2Jq38/MUFcZy8x88oZRoheQYkfk++B9TILaEls3tbECmHLS2xe85YZYo66xI27 u9knMArPQtIyC0nLLCQtCxiZVzGKpJYW56bnFhvqFSfmFpfmpesl5+duYgRG1bZjPzfvYLy0 MfgQowAHoxIPr8Vkjkgh1sSy4srcQ4wSHMxKIryHrTkjhXhTEiurUovy44tKc1KLDzGaAoNl IrOUaHI+MOLzSuINTQzNLQ2NjC0szI2MlMR5Sz5cCRcSSE8sSc1OTS1ILYLpY+LglGpg7Lnc 80q36+FTsxzHCPOZM8/vvOB7L+F4ae23F+GvX03vEmubHlHqeKpo/sbVWx2cGUt1U4++17bn ZRYU/8j+5MYaX8UJpZoN/69ci2CK2dTlns0m17F76b5cZ6VvyVySVgX+Fv8/vDac+DiI7eqW /h8VZjb/GgReZRr+PRzAfeCScCNLg+45JZbijERDLeai4kQAtHsFn8ACAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170503100436eucas1p22777f5c31c4eac56c76dbaac460fd03f X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170502142014epcas2p3a442db31cf0a8c28b27e89a4cf188e10 X-RootMTR: 20170502142014epcas2p3a442db31cf0a8c28b27e89a4cf188e10 References: <20170502161925.03e9f794@leopold.lan> On Tue, 2 May 2017 16:19:25 +0200 Jure Varlec wrote: > I noticed a file descriptor leak today in a script that was forking > jobs in a loop and ceased to work after 1000 jobs. A (quick, admittedly) > search of the mailing list found nothing relevant. A minimal example is > attached, using `lsof` to demonstrate the problem. I also attached its > output in case there are difficulties reproducing the problem. It is > interesting to see that only the `&!` operator causes the problem, the > `disown` command does not. A pipe needs to be present in the > backgrounded command. Thanks, this made it easy to track down. pws diff --git a/Src/exec.c b/Src/exec.c index 9a75dd2..debb0ae 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1612,6 +1612,7 @@ execpline(Estate state, wordcode slcode, int how, int last1) zclose(opipe[0]); } if (how & Z_DISOWN) { + pipecleanfilelist(jobtab[thisjob].filelist, 0); deletejob(jobtab + thisjob, 1); thisjob = -1; }