| delorie.com/archives/browse.cgi | search |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 delorie.com 59RJC9FB474973 |
| Authentication-Results: | delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com |
| Authentication-Results: | delorie.com; spf=pass smtp.mailfrom=cygwin.com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 delorie.com 59RJC9FB474973 |
| Authentication-Results: | delorie.com; |
| dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=R41Z3vkj | |
| X-Recipient: | archive-cygwin AT delorie DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 6EDB23858C56 |
| DKIM-Signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; |
| s=default; t=1761592328; | |
| bh=IHUfzQpTv5+Ts6bQVf1aLabnmfIbcl5XFjZ8RBzmgHM=; | |
| h=Resent-From:Resent-Date:Resent-To:Date:To:Subject:References: | |
| In-Reply-To:List-Id:List-Unsubscribe:List-Archive:List-Post: | |
| List-Help:List-Subscribe:From:Reply-To:From; | |
| b=R41Z3vkjcaDSms0BQAvSa5e4E8oJsbzya8L9o9DerHmCYqErYRx2YILu81ibXJ7Ms | |
| joyN/H1MeiaHvIT1FkocwuA4ZjnEnzSMUqn9oMHk0MOqZIse2jgSuvKVu4nqcXoRsD | |
| dKNmojpt7HVj9hhPZTAynl4YLkTXYo0OQ6aq+FQg= | |
| X-Original-To: | cygwin AT cygwin DOT com |
| Delivered-To: | cygwin AT cygwin DOT com |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org 7DBB43858C40 |
| Resent-From: | root <root AT server2 DOT sourceware DOT org> |
| Resent-Date: | Mon, 27 Oct 2025 19:10:22 +0000 |
| Resent-Message-ID: | <aP/DnhZJ+F2Wzf0l AT server2 DOT sourceware DOT org> |
| Resent-To: | cygwin AT cygwin DOT com |
| X-Original-To: | spam AT localhost |
| Delivered-To: | spam AT localhost |
| DMARC-Filter: | OpenDMARC Filter v1.4.2 sourceware.org ACE0A3858CB6 |
| ARC-Filter: | OpenARC Filter v1.0.0 sourceware.org ACE0A3858CB6 |
| ARC-Seal: | i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1760569371; cv=none; |
| b=MuaLG8oJwQztqv1QsC0pJPfrzKAyqE8zRol0jlFxz4yzegfsSQLK0Y3SLCKu0/ahy1R86CRPx4as09UU7VRezBDW5Sm31sI5EEsqBZwHNSyMhPkFCvICOwUel3yKbD8w3BUWET1zp6VYaBUyEXD6TdaF0jlJ0gLyxKP4YHlW33Q= | |
| ARC-Message-Signature: | i=1; a=rsa-sha256; d=sourceware.org; s=key; |
| t=1760569371; c=relaxed/simple; | |
| bh=O98Gc9fXvc45JVJoLzvq7dhQBpOlrRBNxLnPt9GQxH8=; | |
| h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; | |
| b=k4+CY+MgcR1Z+0t5s629fqx8zkughdPhM2p05fRo6miiRxSUzg4kTyHTmKWz1xUFldO8+1pIqGwVLkTHWACBYH/E8UEf+xqslD7YDtN9Kl2zQ/QHti+BNr4PJm/HprgkDiCrn0E7EgkCC3BCRU5bB3H4EKqG1i5HXDztnTF4kEs= | |
| ARC-Authentication-Results: | i=1; server2.sourceware.org |
| DKIM-Filter: | OpenDKIM Filter v2.11.0 sourceware.org ACE0A3858CB6 |
| Date: | Thu, 16 Oct 2025 10:02:45 +1100 |
| To: | cygwin AT cygwin DOT com |
| Subject: | Re: bash hangs when executing a script with a here document larger |
| than 64 KiB | |
| Message-ID: | <aPAoCTBx5pmU85iu@dimstar.local.net> |
| Mail-Followup-To: | cygwin AT cygwin DOT com |
| References: | <6844953 DOT 4vTCxPXJkl AT nimes> |
| <6f388d6d-e0b1-46a6-a4fb-9f1e008345a7 AT SystematicSW DOT ab DOT ca> | |
| <aOH61MY8W2lZMWWb AT dimstar DOT local DOT net> | |
| <7551137c-8ba5-afd8-b7aa-30a18661cc6d AT wisemo DOT com> | |
| <aOx59/JPkxeGIOrG AT dimstar DOT local DOT net> | |
| MIME-Version: | 1.0 |
| In-Reply-To: | <aOx59/JPkxeGIOrG@dimstar.local.net> |
| X-Atmail-Id: | duncan_roe AT optusnet DOT com DOT au |
| X-atmailcloud-spam-action: | no action |
| X-Cm-Envelope: | MS4xfEzUerF8/zaLYkVGdwgHo3tllmtax4FMuJDQdbnBtQKUZ0CKASCgncGGEE//A8P3//bfcNEEmEnw/JH1ndnzQgfpgXDrTZ6eUl2hhiksBIonY/C6X6AL |
| Ox7A9NaxaiqanexiKAdKuxbweVLSb1Xd36/1IieQBj2K/oPmj7o7sYTPxEToZS4UwIq1gf7Voxcu+g== | |
| X-Cm-Analysis: | v=2.4 cv=bvdKBlai c=1 sm=1 tr=0 ts=68f02818 |
| a=6uXT7DF6Lsg9xELlzDb1tA==:117 a=6uXT7DF6Lsg9xELlzDb1tA==:17 | |
| a=PgLrZpBLtpqfETd_:21 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=u5XXcUwOAAAA:8 | |
| a=oC-U7Zc_NDZCH3J504gA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 | |
| a=9Wj8dLAF7nyNpo3U2r0D:22 | |
| X-atmailcloud-route: | unknown |
| X-BeenThere: | cygwin AT cygwin DOT com |
| X-Mailman-Version: | 2.1.30 |
| List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
| List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
| List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
| List-Post: | <mailto:cygwin AT cygwin DOT com> |
| List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
| List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
| <mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
| From: | Duncan Roe via Cygwin <cygwin AT cygwin DOT com> |
| Reply-To: | Duncan Roe <duncan_roe AT optusnet DOT com DOT au> |
| Errors-To: | cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com |
| Sender: | "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com> |
| X-MIME-Autoconverted: | from base64 to 8bit by delorie.com id 59RJC9FB474973 |
On Sun, Oct 05, 2025 at 08:03:34AM +0200, cygwin wrote:
> On 10/5/2025 6:57 AM, Duncan Roe via Cygwin wrote:
> > If the bug is to persist, I suggest to munge psize.c:-
> >
> > | *** builtins/psize.c.bu Fri Aug 15 05:56:53 2008
> > | --- builtins/psize.c Sun Oct 5 14:06:50 2025
> > | ***************
> > | *** 51,57 ****
> > | sigpipe (sig)
> > | int sig;
> > | {
> > | ! fprintf (stderr, "%d\n", nw);
> > | exit (0);
> > | }
> > |
> > | --- 51,57 ----
> > | sigpipe (sig)
> > | int sig;
> > | {
> > | ! fprintf (stderr, "%d\n", nw - 128);
> > | exit (0);
> > | }
> > |
> >
> > N.B. blank lines (after removing 1st 2 chars) have 2 trailing spaces.
> >
> > Cheers ... Duncan.
> >
> Subtracting 128 (the granularity of the test code), seems very arbitrary and
> kludgy.
Kludgy?? It's the expected result when you write that number of bytes.
Anyway, it's a *tested* and *working* 1-line fix. Any 1-line fix is a good fix.
>
> An obvious simplification is to disable SIGPIPE and use a loop that ends
> when 0or -1
> is returned, like this:
>
> /* The following code was written directly in the mail and not tested */
Clearly not tested 🙄
>
> Â /* TODO: ignore SIGPIPE instead of setting a handler */
>
> nw = 0;
> for(;;)
> {
> i = write (1, buf, 128);
> if (i <= 0)
> break;
> Â nw += i;
> }
> /* These are the error codes in the POSIX write(3P) man page
> * associated with hitting the pipe limit or similar,
> * maybe this code should accept a few more error codes in
> * real world use for this.
> */
> if (errno == EPIPE || errno == ENOSPC || errno == EAGAIN ||
> errno == EFBIG || errno == ENOBUFS)
> fprintf (stderr, "%d\n", nw);
> else
> perror (argv[0]);
Doesn't work. As per my previous email, the over-capacity write only returns on
receipt of a signal, but before the signal is delivered.
It *might* work if the pipe were made non-blocking, but that's a lot of code
churn compared with a 1-liner.
>
> Another simplification would be for psize.c to open its own pipe and
> simply never read from it, thus removing any dependency on how the build
> time shell and sleep programs handle the pipe.
Won't work, see above.
>
> --
> Jakob Bohm, CIO, partner, WiseMo A/S. https://www.wisemo.com
> Transformervej 29, 2860 Soborg, Denmark. direct: +45 31 13 16 10
> <tel:+4531131610>
> This message is only for its intended recipient, delete if misaddressed.
> WiseMo - Remote Service Management for PCs, Phones and Embedded
Cheers ... Duncan.
--
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |