Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15352

Re: cat inside >() inside tee after flock gets stuck

Path csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.snarked.org!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Chet Ramey <chet.ramey@case.edu>
Newsgroups gnu.bash.bug
Subject Re: cat inside >() inside tee after flock gets stuck
Date Mon, 9 Sep 2019 16:27:42 -0400
Lines 57
Approved bug-bash@gnu.org
Message-ID <mailman.77.1568060874.2190.bug-bash@gnu.org> (permalink)
References <ce746044-05f6-8dc0-d599-b6a46b9c4704@gmail.com> <706bdf90-73a0-f3fc-07b3-1b773aaaafb9@case.edu>
Reply-To chet.ramey@case.edu
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8
Content-Transfer-Encoding 8bit
X-Trace usenet.stanford.edu 1568060875 9723 209.51.188.17 (9 Sep 2019 20:27:55 GMT)
X-Complaints-To action@cs.stanford.edu
Cc chet.ramey@case.edu
To Kamil Cukrowski <kamilcukrowski@gmail.com>, bug-bash@gnu.org
Envelope-to bug-bash@gnu.org
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1568060866; bh=JIKu17/bu0YIPWKcfeOUGuyy1TFCZ9DKYMm4GzzXZAs=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=W+IMqTziHxjtD/rPZgbULt46ZCKBARBZAio/iIUN3jUBwzV9B4z0di4aOdKnt3YL/9 2J2iiTh8k/RR+McmouA3l14IfwuQ66s7Ct07KeTe9O18VympFI6HQSGlu8X2QnyeW3Y xNng3kE8NhkfM0vrG/0lyHg7f6qU8BvSkWzlnK3qc8GFOOJkY+1NIg84yta+0hbHQHv KhpYokTpjQl9bqVK4ehYidGA7wDLR2+c8opvVg6R64sjcXBwXaD3hZLvgRA/KeqYPp+ hm1rIiITvUUPP68o9roYWyBmSYJuCzuzt2S32OSJRcO0W2SvV39h8QVXhMMpXtpmkAh ApWyIsJQ==
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=case.edu; s=smtp-primary; t=1568060865; bh=ESLqkP6mHv1w4Irwvn/3U8Z9ZOma3tVPSBUtA0N/c6k=; h=Reply-To:Cc:Subject:To:References:From:Message-ID:Date: MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding; b=x6XX61l4xNhRID1DqYiZRMz68qPcyX6ohYRT/dGvKNseYJkox3S4eBDtIcubnq3rWp N6GAj4iyqEkHcEYqr1a1nysJIMITB6jr+Wyifxlop8pxuawPfJpbAFzsR57//3o6B7W pdT/gYkynLGGs+ImfWgDaniq+vUrPX36wCcy4GUhOCg7ftVk/dO6LkqQ36dN4kHIeDt kWyUiBhlzbFbbtMlU2G7hpwNQJtORz1ow0X6YQTLDhJGSK3+crd75yHDbjeUWOVLVxh 5t2hbd5CCTwv3cLq/rCiGMc92qpH7ZuVnhwUM6f1+f2mI57d0Q5QAq3eZ4T8RTWdjJ5 iNVQNo/Q==
Openpgp preference=signencrypt
Autocrypt addr=chet.ramey@case.edu; prefer-encrypt=mutual; keydata= xsDiBEEOsGwRBACFa0A1oa71HSZLWxAx0svXzhOZNQZOzqHmSuGOG92jIpQpr8DpvgRh40Yp AwdcXb8QG1J5yGAKeevNE1zCFaA725vGSdHUyypHouV0xoWwukYO6qlyyX+2BZU+okBUqoWQ koWxiYaCSfzB2Ln7pmdys1fJhcgBKf3VjWCjd2XJTwCgoFJOwyBFJdugjfwjSoRSwDOIMf0D /iQKqlWhIO1LGpMrGX0il0/x4zj0NAcSwAk7LaPZbN4UPjn5pqGEHBlf1+xDDQCkAoZ/VqES GZragl4VqJfxBr29Ag0UDvNbUbXoxQsARdero1M8GiAIRc50hj7HXFoERwenbNDJL86GPLAQ OTGOCa4W2o29nFfFjQrsrrYHzVtyA/9oyKvTeEMJ7NA3VJdWcmn7gOu0FxEmSNhSoV1T4vP2 1Wf7f5niCCRKQLNyUy0wEApQi4tSysdz+AbgAc0b/bHYVzIf2uO2lIEZQNNt+3g2bmXgloWm W5fsm/di50Gm1l1Na63d3RZ00SeFQos6WEwLUHEB0yp6KXluXLLIZitEJM0gQ2hldCBSYW1l eSA8Y2hldC5yYW1leUBjYXNlLmVkdT7CYQQTEQIAIQIbAwYLCQgHAwIDFQIDAxYCAQIeAQIX gAUCRX3FIgIZAQAKCRC7WGnwZOp0q069AKCNDRn+zzN/AHbaynls/Lvq1kH/RQCgkLvF8bDs maUHSxSIPqzlGuKWDxbOwE0EQQ6wbxAEAJCukwDigRDPhAuI+lf+6P64lWanIFOXIndqhvU1 3cDbQ/Wt5LwPzm2QTvd7F+fcHOgZ8KOFScbDpjJaRqwIybMTcIN0B2pBLX/C10W1aY+cUrXZ gXUGVISEMmpaP9v02auToo7XXVEHC+XLO9IU7/xaU98FL69l6/K4xeNSBRM/AAMHA/wNAmRB pcyK0+VggZ5esQaIP/LyolAm2qwcmrd3dZi+g24s7yjV0EUwvRP7xHRDQFgkAo6++QbuecU/ J90lxrVnQwucZmfz9zgWDkT/MpfB/CNRSKLFjhYq2yHmHWT6vEjw9Ry/hF6Pc0oh1a62USdf aKAiim0nVxxQmPmiRvtCmcJJBBgRAgAJBQJBDrBvAhsMAAoJELtYafBk6nSr43AAn2ZZFQg8 Gs/zUzvXMt7evaFqVTzcAJ0cHtKpP1i/4H4R9+OsYeQdxxWxTQ==
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
In-Reply-To <ce746044-05f6-8dc0-d599-b6a46b9c4704@gmail.com>
Content-Language en-US
X-Junkmail-Status score=7/90, host=mpv3-2015.case.edu
X-Junkmail-PrAS-Raw score=7/90, refid=2.7.2:2019.9.9.194217:17:7.944, ip=, rules=DKIM_SIGNATURE, __HAS_REPLYTO, __HAS_CC_HDR, __SUBJ_REPLY, __BOUNCE_CHALLENGE_SUBJ, __BOUNCE_NDR_SUBJ_EXEMPT, __SUBJ_ALPHA_END, __TO_MALFORMED_2, __TO_NAME, __TO_NAME_DIFF_FROM_ACC, __HAS_REFERENCES, __REFERENCES, __HAS_FROM, FROM_EDU_TLD, __HAS_MSGID, __SANE_MSGID, DATE_TZ_NA, __USER_AGENT, __MOZILLA_USER_AGENT, __MIME_VERSION, __IN_REP_TO, __CT, __CT_TEXT_PLAIN, __CTE, __REPLYTO_SAMEAS_FROM_ADDY, __REPLYTO_SAMEAS_FROM_ACC, __FROM_DOMAIN_IN_ANY_CC1, __FROM_DOMAIN_IN_ANY_CC2, __REPLYTO_SAMEAS_FROM_DOMAIN, __DKIM_ALIGNS_1, __DKIM_ALIGNS_2, __ANY_URI, __HTTPS_URI, __URI_WITH_PATH, URI_ENDS_IN_HTML, __URI_NO_WWW, __HIGHBITS, __CP_URI_IN_BODY, __FRAUD_MONEY_CURRENCY_DOLLAR, __SUBJ_ALPHA_NEGATE, __MULTIPLE_URI_TEXT, __URI_IN_BODY, __URI_NOT_IMG, __FORWARDED_MSG, __BODY_NO_MAILTO, __NO_HTML_TAG_RAW, BODYTEXTP_SIZE_3000_LESS, BODY_SIZE_1800_1899, [TRUNCATED], so=2010-03-03 19:42:08, dmn=2016-08-03-0138
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic]
X-Received-From 129.22.103.194
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.23
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <https://lists.gnu.org/archive/html/bug-bash>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
X-Mailman-Original-Message-ID <706bdf90-73a0-f3fc-07b3-1b773aaaafb9@case.edu>
X-Mailman-Original-References <ce746044-05f6-8dc0-d599-b6a46b9c4704@gmail.com>
Xref csiph.com gnu.bash.bug:15352

Show key headers only | View raw


On 9/6/19 7:15 PM, Kamil Cukrowski wrote:

> Bash Version: 5.0
> Patch Level: 9
> Release Status: release
> 
> Description:
>     I have the following script to synchronize execution of a command
> substitution using flock:
> 
>         touch /tmp/1
>         echo |
>         (
>             flock 13
>             tee >(
>                cat
>                flock -u 13
>             ) >/dev/null
>             (
>                flock 13
>             ) 13</tmp/1
>         ) 13</tmp/1
> 
>     The purpose of the code is to synchronize the output of the command
> redirection run "inside" `tee` with the rest of the script. For that, the
> "main process" blocks on flock until the command inside redirection is
> finished when it unlocks the flock.
> 
>     However on bash 5.0 The `cat` inside `tee` gets blocked on `read()`.

Thanks for the report.

It's the second `flock 13', because it still has a file descriptor open for
writing on the pipe. The change between bash-4.4 and bash-5.0 was made in
December, 2017 in response to this:

https://lists.gnu.org/archive/html/bug-bash/2017-12/msg00002.html

There was an asymmetry in the code that caused some instances of command
lists to inherit file descriptors from process substitutions performed
earlier in the list.

The only thing that fixing that sacrifices is something like

f=<(echo a); cat "$f"

but that never worked in previous versions of bash anyway.

The fix will be in the next devel branch push.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
		 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: cat inside >() inside tee after flock gets stuck Chet Ramey <chet.ramey@case.edu> - 2019-09-09 16:27 -0400

csiph-web