From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 13371 invoked from network); 14 Apr 2022 21:30:33 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 14 Apr 2022 21:30:33 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1649971833; b=QavikYVsE/KQTqYEwaa/sqcUZEQmgzk0Vh77IQtf1eLR1B11y/3g5iF9Pq4hO/31qMHs0q+/Vc MUNA/4eD0C659kCw03KzFGvgRnjckboOLn0nKACvX7BK6yL1qof0DjufciJ9AI/iEBzln8V8oa 1Y1U85lt7TQzELiQmFj3s1o6yp4FH3GuJECKrd93J5Yr7hBhLLuRB4uxXlpnbzeYRwDSZFLVGO 9LL31u9kBdpkaed9Xyqk0nqyYyaLXpyH0szKuhPUczVvN5XxkUgnGkS45uk9bnpgWPSG1G7cw/ 8eHXCX4Lch+JFJUrc7sTDxyxjlAWO7SLM8oJPCAUv6+fRQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1649971833; bh=9zXTLtNU1Dzd+E2ls19TULVsG+/7sauvEjAZwW/eLLg=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=YFJQ7ZPm0tzTPIoH5L2uLuRsiD8IJegjFvQDxj26auQTuV5EaPj/TtWIg1x9mm1GVv4qCgqMXH ak3fQkXcwmMyFNfjiDwZvw1Qhg4iqd6KMNOBUgXqTOXdF492xY4B93oUbGwIptRo/lelW6g226 4lP7UknMesj8PenxiETayCEYypR49xp7AfgGNL4hqTBbGxUl2vToj+JVNp6H1y4CkyvKphtkqZ MmG0X0+ZmcXRB0kkrzpefE4z0voEjuVzSwAOXUlRAuLWfjyyRyaQf55Gy9fm7TuDDUqtGWwr5A Jg+vdGPYd/h4Ut4hiHfDdjFKs+37EPBt8HDljTM2lhguZQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=GK0mykoIn9OifF6d4fy3MilnjkfXKt9ouIVl4+2RMLc=; b=KGwDhzITkAIQBZGlWRF53kR94d SB2lCzUhFVuKkV0SpvhYv7BEKVx0tbJTmqd0L/rSAnLyMnZ6v76OttiZH0VZFm7wp12PtlHGl0vFz y/QpN1vhiRUgLkLeBBujITfzJfELE+0ktAkv8oLMmv4gjViHsGWMGgPGTuIMqnKfbi9MyRIwTvFcA 6/AqIlnvsMi649IfD4hC79L1fjb0j1YQ0KLnTrzAJ9fwz+zPzzQYm++FtF7KN3O0n89kNjb1b55df za5cZ0+5/S0dHLWtF1B4ukCGTfjOIX9nQ7Mzvv62Vzn+TJj4z3NJBRzeejoPPOL2cjFcd/+ROHNkO 8Eq6RIKw==; Received: from authenticated user by zero.zsh.org with local id 1nf72u-000Nxb-Hq; Thu, 14 Apr 2022 21:30:32 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20210112.gappssmtp.com header.s=20210112 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f43.google.com ([209.85.218.43]:44757) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1nf72J-000Ndn-4F; Thu, 14 Apr 2022 21:29:56 +0000 Received: by mail-ej1-f43.google.com with SMTP id u15so12343155ejf.11 for ; Thu, 14 Apr 2022 14:29:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=GK0mykoIn9OifF6d4fy3MilnjkfXKt9ouIVl4+2RMLc=; b=uHWrNC0f/UXyhD25uEtMhFpxWIfDRpmSbpcT501yJy1GVjMePUkbXPks7tA+6nTxq8 +uxTHyRpCokaunQKWB30cP9lyd0UBLZqoX2LQ9AHqChIicf0GGJOsrGnxuNBCgueldH6 O0hggsuNFNv26vRRAMfyL0HuEkX1tS52Bu9Tc32cYZFzySXwJ/EgGHU1mBdc6tARoPTa R1LHgIAaHK8RqncDtBbyzbvAaVMScn7lG0vIeZIbPWgL172/F/ZbxFkCphBRSC3VgxfG +vUOfof7er9V9GOG1YtO69DsDZuQe9FhjEQWajI2tNonfjm/xlajh2dRf7wpeL5uGUoj uzNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=GK0mykoIn9OifF6d4fy3MilnjkfXKt9ouIVl4+2RMLc=; b=MVXjhF+77cJbSObi/HYSEvCCljT+dj1oyAReTWwWBfczGQbY2sgxCJXng01AXmYSeW zEgoVaIhhgBXuBjXS0vRVAidWJDXL2jHoz+V6Yc/YUB0FwCpFo9p8QftoudJf28qy544 hFMZJ0chW7WitFfjvzBswR5XG0xLL7e7oQIG4aoqRpuIxU0Rfrk1rCcaZgmdij7wACqs GL/57yFfuGLcUT1buKpylniBPRxdJRSCtCnCP3CntvvsD7IWBv9bX6p0DiNQJ4ykz6Yd pCmspXpqOocU/wgpNkNg5mbs7B5gmH4WTuhc0TYPz6F1CnQ6LDM+wEGtkWPPBW9ga+i0 tXgg== X-Gm-Message-State: AOAM53334yss8ImeRR8aCWfLlCcPXJitmAyWgZNzRLg1yUAEUkpWqCml bFgFj503SdUOVG92hQu7Ss/SdgG+QxFbo8FR5eLH/bMjR8rGpNzx X-Google-Smtp-Source: ABdhPJyKNW3L4DSV/r0jir92kfrdhsWI/Nb7Q0s+V19FuRK9EEc8Vzy0YUUhfIVxPw/GrXJnDJleVRcD2RAUa30VQi0= X-Received: by 2002:a17:906:c1d7:b0:6e8:4f18:fede with SMTP id bw23-20020a170906c1d700b006e84f18fedemr3909879ejb.95.1649971794589; Thu, 14 Apr 2022 14:29:54 -0700 (PDT) MIME-Version: 1.0 References: <25170.64465.301441.247673@lwm.klanderman.net> <87fsmk2a03.fsf@lwm.klanderman.net> <87czho2967.fsf@lwm.klanderman.net> <871qy0yzp4.fsf@lwm.klanderman.net> In-Reply-To: <871qy0yzp4.fsf@lwm.klanderman.net> From: Bart Schaefer Date: Thu, 14 Apr 2022 14:29:42 -0700 Message-ID: Subject: Re: using trap function to cleanup and exit? To: Greg Klanderman Cc: Zsh hackers list Content-Type: multipart/mixed; boundary="000000000000b4de1405dca3fe87" X-Seq: 50068 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: --000000000000b4de1405dca3fe87 Content-Type: text/plain; charset="UTF-8" On Wed, Apr 13, 2022 at 10:58 PM Greg Klanderman wrote: > > The script I posted is using /bin/zsh -f, so TRAPS_ASYNC should be > off, but I do see a trap run immediately, when the script is running > > | > > at the time the signal is received. > > Is the considered a foreground child? No, it's in the background; zsh "forks to the left" so that the is running in the current shell. This is the reverse of bash/ksh. (In recent zsh, when emulating sh, both sides of the pipe may be forked.) > When TRAPTERM uses 'exit' rather than 'return', the script does not > exit after receiving SIGTERM. OK, this is indeed a bug, previously discussed in workers/44007 and follow-ups. More on this below. > With 'return', the script does exit, > but the in > > | > > remains running. This is actually expected, I believe; as noted above, is a background job here, and it would normally be expected to exit on SIGPIPE when the exits and closes the connection. It never gets that signal because it never writes anything on the pipe. Regarding workers/44007: This seems ultimately to be a side-effect described by this comment: * We don't exit directly from functions to allow tidying * up, in particular EXIT traps. We still need to perform * the usual interactive tests to see if we can exit at * all, however. In bin_break(), which handles both "return" and "exit", the conditions applied upon "return" are not the same as those applied upon "exit". With the builtin.c hunk of the patch below "make check" reports: Test ./C03traps.ztst was expected to fail, but passed. Was testing: (workers/44007) function execution continues after 'exit' in trap I've therefore included cleaning up the BUGS file and reversing the sense of that test, but would prefer that another set of eyes review the code change. --000000000000b4de1405dca3fe87 Content-Type: text/plain; charset="US-ASCII"; name="patch44007.txt" Content-Disposition: attachment; filename="patch44007.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l1ziky640 ZGlmZiAtLWdpdCBhL0V0Yy9CVUdTIGIvRXRjL0JVR1MKaW5kZXggNTYyNGZiMjRkLi4zMTIxZmM5 ZmEgMTAwNjQ0Ci0tLSBhL0V0Yy9CVUdTCisrKyBiL0V0Yy9CVUdTCkBAIC0zMCw5ICszMCw2IEBA IHNraXBwZWQgd2hlbiBTVFRZPS4uLiBpcyBzZXQgZm9yIHRoYXQgY29tbWFuZAogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiA0MjYwOTogOnw6ID0oaGFuZykKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotNDQwMDcgLSBNYXJ0 aWpuIC0gZXhpdCBpbiB0cmFwIGV4ZWN1dGVzIHJlc3Qgb2YgZnVuY3Rpb24KLVNlZSB0ZXN0IGNh c2UgaW4gVGVzdC9DMDN0cmFwcy56dHN0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0NDEzMyBkZWJpYW4g IzkyNDczNiAocGFydGlhbCBwYXRjaCBpbiA0NDEzNCkgdGhyZWUgc2V0b3B0cyBmb2xsb3dpbmcg YCAgICAjYAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiA0NDg1MCB0ZXJtaW5hbCBpc3N1ZXMgd2l0aCBjb250 aW51YXRpb24gbWFya2VycwpkaWZmIC0tZ2l0IGEvU3JjL2J1aWx0aW4uYyBiL1NyYy9idWlsdGlu LmMKaW5kZXggOGVmNjc4YjIyLi5iOTM0NjZiYTUgMTAwNjQ0Ci0tLSBhL1NyYy9idWlsdGluLmMK KysrIGIvU3JjL2J1aWx0aW4uYwpAQCAtNTcyMCw2ICs1NzIwLDggQEAgYmluX2JyZWFrKGNoYXIg Km5hbWUsIGNoYXIgKiphcmd2LCBVTlVTRUQoT3B0aW9ucyBvcHMpLCBpbnQgZnVuYykKIAkgICAg ICogYSBiYWQgam9iLgogCSAgICAgKi8KIAkgICAgaWYgKHN0b3Btc2cgfHwgKHpleGl0KDAsIFpF WElUX0RFRkVSUkVEKSwgIXN0b3Btc2cpKSB7CisJCWlmICh0cmFwX3N0YXRlKSAKKwkJICAgIHRy YXBfc3RhdGUgPSBUUkFQX1NUQVRFX0ZPUkNFX1JFVFVSTjsKIAkJcmV0ZmxhZyA9IDE7CiAJCWJy ZWFrcyA9IGxvb3BzOwogCQlleGl0X3BlbmRpbmcgPSAxOwpkaWZmIC0tZ2l0IGEvVGVzdC9DMDN0 cmFwcy56dHN0IGIvVGVzdC9DMDN0cmFwcy56dHN0CmluZGV4IDZmODRlNWRiMi4uM2JkMjk1OGNi IDEwMDY0NAotLS0gYS9UZXN0L0MwM3RyYXBzLnp0c3QKKysrIGIvVGVzdC9DMDN0cmFwcy56dHN0 CkBAIC05MDEsNyArOTAxLDcgQEAgRjpNdXN0IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNj cmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ugb3IgZnVuY3Rpb24KICBmbiB0cmFwMSB0cmFwMgogIGVj aG8gb3V0MgogICcKLS1mOih3b3JrZXJzLzQ0MDA3KSBmdW5jdGlvbiBleGVjdXRpb24gY29udGlu dWVzIGFmdGVyICdleGl0JyBpbiB0cmFwCistOih3b3JrZXJzLzQ0MDA3KSBmdW5jdGlvbiBleGVj dXRpb24gY29udGludWVzIGFmdGVyICdleGl0JyBpbiB0cmFwCiA+b3V0MQogPmZuMQogPnRyYXAx Cgo= --000000000000b4de1405dca3fe87--