From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: zsh-workers-return-43406-ml=inbox.vuxu.org@zsh.org X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 0d4445ff for ; Fri, 7 Sep 2018 09:19:20 +0000 (UTC) Received: (qmail 24645 invoked by alias); 7 Sep 2018 09:19:05 -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: 43406 Received: (qmail 18103 invoked by uid 1010); 7 Sep 2018 09:19:04 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.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.12):SA:0(-6.9/5.0):. Processed in 3.100045 secs); 07 Sep 2018 09:19:04 -0000 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180907091856euoutp02498c796b0110ebf3538fa608b86f346e~SE5DuVbsg2298622986euoutp02P DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1536311936; bh=0vwjccIB0Kuq6sJiF/hKLcgJzYTUZtZLppRaUmD24bI=; h=Date:From:To:Subject:In-Reply-To:References:From; b=gRHrPKBAdxurQQBojan/llW21FrT1PRJg/XBj6fxjorKhgbIWeEDJ27y+V6/AclsU iY7YYCocnKy1/DNNEJPWUp+u8Ss3yZw+h9wsTcD4zs+PC8HTRa+DMyV6t7x5yOcn/I FKCoN3xIoSFx/sgGZubmtSj8eKhTu4Rq3xDd4dcg= X-AuditID: cbfec7f2-5c9ff70000001159-72-5b92427e4d0d Date: Fri, 7 Sep 2018 10:18:52 +0100 From: Peter Stephenson To: Zsh hackers list Subject: Re: PATCH: job control debug In-Reply-To: Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrAIsWRmVeSWpSXmKPExsWy7djPc7p1TpOiDZ6/NLM42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGdf3f2It2M1b8XbSEcYGxr1cXYycHBICJhKnX21k6mLk4hAS WMEo8X3zVHYIp49JonPVbDYIp5dJ4tP3m4wwLRd7FkAlljNKLLp+DaHqzLX/rBDOaUaJv7d3 MkI45xklFtz+zA7SzyKgIjF341KwWWwChhJTN80Gs0UEtCR2nDzJBGILC6hKHD9zkgXE5hQI lHj7YA/QCg4OfgEhiQvNthBn2Esc3QNRzisgKHFy5hOwcmYBeYntb+cwg+yVEHjPJvHiQysz RFGZxI9t/SwQzS4SR448YYawhSVeHd/CDmHLSPzfOZ8JormdUWLNpNfsEE4Po8Smo3egIWAt 0Xf7IiPIRcwCmhLrd+lDhB0lbr48xgISlhDgk7jxVhDiID6JSdumM0OEeSU62oQgqtUkdjRt ZZzAqDwLyQuzkLwwC2H+AkbmVYziqaXFuempxYZ5qeV6xYm5xaV56XrJ+bmbGIHp4PS/4592 MH69lHSIUYCDUYmH94HRxGgh1sSy4srcQ4wSHMxKIrz8xpOihXhTEiurUovy44tKc1KLDzFK c7AoifPyaaVFCwmkJ5akZqemFqQWwWSZODilGhgFCsXyC71vHX505dmSRD/LbmdXsyCOw5LL q2/+iq5yPqBw7NuSWVNYG5LEvwdN8GpMr7/yfE3jHWYdVcPjqaIt0l1b5XT232G6veT93wOV /jaMfLuCiqqqpspmrkjkrXz4wvZkpHjkfv62O6/mv2NYON/4RN/R3a1b92qWHIlTE0l5onWK UVOJpTgj0VCLuag4EQAtmySJAwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Pd06p0nRBqdzLQ42P2RyYPRYdfAD UwBjlJ5NUX5pSapCRn5xia1StKGFkZ6hpYWekYmlnqGxeayVkamSvp1NSmpOZllqkb5dgl7G 9f2fWAt281a8nXSEsYFxL1cXIyeHhICJxMWeBWxdjFwcQgJLGSWmfvvBCJGQkfh05SM7hC0s 8edaF1RRN5PE0eZtTBDOaUaJdVNfQznnGSWu7f/HCtLCIqAiMXfjUrBRbAKGElM3zQazRQS0 JHacPMkEYgsLqEocP3OSBcTmFXCWuHznIVgvp0CgxNsHe6DW/WKSODDhC9AdHBz8AkISF5pt IU6ylzi6B2IOr4CgxMmZT8DmMAvoSJxYdYwZwpaX2P52DvMERuFZSMpmISmbhaRsASPzKkaR 1NLi3PTcYiO94sTc4tK8dL3k/NxNjMCo2Hbs55YdjF3vgg8xCnAwKvHwWphOjBZiTSwrrsw9 xCjBwawkwstvPClaiDclsbIqtSg/vqg0J7X4EKMpMDAmMkuJJucDIzavJN7Q1NDcwtLQ3Njc 2MxCSZz3vEFllJBAemJJanZqakFqEUwfEwenVAPjOYnJO/7r3Pq8KX/i4fyI5/EWl23Yz6dN 5Nig/aJwg9cxtl9HU8/f0BKPWjLv6gaDXzleT2Osjz9afMxkwzytnSY6R/LN5CRWib/61su5 re75Vr3MXqnXRuo8WxOf8O3cFrTNVrDg+H41Pi1X8+rjIjwm1yvzXDsjG7uP1+cIZLJcP7dq Q9YmJZbijERDLeai4kQA8YGSk6ACAAA= Message-Id: <20180907091854eucas1p174b53ff65c00fc7e6c17c3b9832dfa80~SE5CIlxO91559115591eucas1p1o@eucas1p1.samsung.com> X-CMS-MailID: 20180907091854eucas1p174b53ff65c00fc7e6c17c3b9832dfa80 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20180905200816epcas5p18ce6c49baa637e7d83a769e97c4364fb X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180905200816epcas5p18ce6c49baa637e7d83a769e97c4364fb References: <20180905210740.5a6aec15@pws-HP.localdomain> <20180906090902.1f344e9f@camnpupstephen.cam.scsc.local> <20180906092250eucas1p13d651e07ae627d179dd0701e65f912d6~RxTLztJrP2263722637eucas1p12@eucas1p1.samsung.com> On Thu, 6 Sep 2018 20:18:14 -0700 Bart Schaefer wrote: > In particular entersubsh() does some juggling of SIGTTOU -- which I > think predates this bug appearing, but there may be an interaction of > that with some later change. That's definitely a good tip. We usually get here: if (!job_control_ok) { /* * If this process is not going to be doing job control, * we don't want to do special things with the corresponding * signals. If it is, we need to keep the special behaviour: * see note about attachtty() above. */ signal_default(SIGTTOU); signal_default(SIGTTIN); signal_default(SIGTSTP); } Sure enough, disabling this stops the problem happening. Note this is not the case where there is no job control at all --- that's a separate test. This is if we think we can't do job control in the current subprocess even if we could in the parent. What do you think of the following? If we are in list_pipe_job land, aka Rimmerworld, and we're attached to the terminal, keep the current signal behaviour. My best guess about what's changed is a newly exposed race. diff --git a/Src/exec.c b/Src/exec.c index 09ee132..4861ae5 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1029,6 +1029,13 @@ entersubsh(int flags) setpgrp(0L, jobtab[list_pipe_job].gleader); if (!(flags & ESUB_ASYNC)) attachtty(jobtab[thisjob].gleader); + } else if (gettygrp() == GETPGRP()) { + /* + * There are races where if the process is attached + * to the terminal blocking SIGTTOU causes errors. + * So just leaves signals alone. + */ + job_control_ok = 1; } } else if (!jobtab[thisjob].gleader || pws