Re: bash 5.3: here-document larger than PIPE_BUF deadlocks on macOS (pipe-backed heredoc, body written before reader is forked)

Chet Ramey <[email protected]> Fri, 10 Jul 2026 10:42:19 -0400
Newsgroups gmane.comp.shells.bash.bugs
Organization ITS, Case Western Reserve University
Message-ID <[email protected]>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------tlyQoSY9wPEOCoksr3ogvwFr
Content-Type: multipart/mixed; boundary="------------Iy6YMowgVV570ED1keyL7sXA";
 protected-headers="v1"
From: Chet Ramey <[email protected]>
Reply-To: [email protected]
To: [email protected]
Cc: [email protected]
Message-ID: <[email protected]>
Subject: Re: bash 5.3: here-document larger than PIPE_BUF deadlocks on macOS
 (pipe-backed heredoc, body written before reader is forked)
References: <CAC-m2iFSuNNooOEDjw_B_KKOVrN91UR3ybhbKAVVKA2JSwusAA@mail.gmail.com>
 <[email protected]>
In-Reply-To: <[email protected]>

--------------Iy6YMowgVV570ED1keyL7sXA
Content-Type: multipart/mixed; boundary="------------HZgLhe9x4OokRLUpjmYo1OTz"

--------------HZgLhe9x4OokRLUpjmYo1OTz
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

T24gNy8xMC8yNiAxMDowNSBBTSwgQ2hldCBSYW1leSB3cm90ZToNCg0KPiBUaGVyZSB3aWxs
IGJlIGEgZml4IGRlcml2ZWQgZnJvbSB0aGUgYnVnLWJhc2ggbWVzc2FnZSBhYm92ZSBpbiB0
aGUgbmV4dA0KPiBkZXZlbCBicmFuY2ggcHVzaC4NCg0KRm9yIHRob3NlIHdobyBkb24ndCB3
YW50IHRvIHdhaXQgKEkgY2FuJ3QgYWNjZXNzIG15IGdpdCBtYWNoaW5lIHJpZ2h0IG5vdyks
DQp0cnkgdGhlIGF0dGFjaGVkIHBhdGNoLiBJdCB1cGRhdGVzIGNvbmZpZ3VyZSwgc28geW91
IGhhdmUgdG8gcnVuIGNvbmZpZ3VyZQ0KYWdhaW4gYmVmb3JlIGJ1aWxkaW5nIGFmdGVyIGFw
cGx5aW5nIGl0Lg0KDQpDaGV0DQoNCi0tIA0KYGBUaGUgbHlmIHNvIHNob3J0LCB0aGUgY3Jh
ZnQgc28gbG9uZyB0byBsZXJuZS4nJyAtIENoYXVjZXINCgkJIGBgQXJzIGxvbmdhLCB2aXRh
IGJyZXZpcycnIC0gSGlwcG9jcmF0ZXMNCkNoZXQgUmFtZXksIFVUZWNoLCBDV1JVICAgIGNo
ZXRAY2FzZS5lZHUgICAgaHR0cDovL3Rpc3d3dy5jd3J1LmVkdS9+Y2hldC8NCg==
--------------HZgLhe9x4OokRLUpjmYo1OTz
Content-Type: text/plain; charset=UTF-8; name="macos-pipe-size.patch"
Content-Disposition: attachment; filename="macos-pipe-size.patch"
Content-Transfer-Encoding: base64

KioqIC4uL2Jhc2gtNS4zLXBhdGNoZWQvcmVkaXIuYwlGcmkgTWFyICA3IDE4OjQ5OjM3IDIw
MjUKLS0tIHJlZGlyLmMJVHVlIEp1bCAgNyAxMToyMTowOSAyMDI2CioqKioqKioqKioqKioq
KgoqKiogNDczLDQ3NyAqKioqCi0tLSA0NzMsNTAwIC0tLS0KICAjZW5kaWYKICAKKyAjaWYg
ZGVmaW5lZCAoUElQRVNJWkVfRFlOQU1JQykKKyAgICAgICAvKiBJZiB3ZSBjYW4ndCBjb3Vu
dCBvbiB0aGUgcGlwZSBzaXplIGRldGVybWluZWQgYXQgY29tcGlsZSB0aW1lIHRvIGJlCisg
CSBjb25zdGFudCBhY3Jvc3Mgc3lzdGVtcywgZGVmaW5lIFBJUEVTSVpFX0RZTkFNSUMgaW4g
Y29uZmlndXJlLmFjLgorIAkgV2Ugc2V0IHRoZSBwaXBlJ3Mgd3JpdGUgZW5kIHRvIGJlIG5v
bi1ibG9ja2luZywgdHJ5IHRvIHdyaXRlLCBhbmQKKyAJIGZhbGwgYmFjayB0byBhIHRlbXAg
ZmlsZSBvbiBlcnJvci4gKi8KKyAgICAgICBpZiAoc2hfc2V0bm9kZWxheSAoaGVyZXBpcGVb
MV0pIDwgMCkKKyAJeworIAkgIGNsb3NlIChoZXJlcGlwZVswXSk7CisgCSAgY2xvc2UgKGhl
cmVwaXBlWzFdKTsKKyAJICBnb3RvIHVzZV90ZW1wZmlsZTsKKyAJfQorICNlbmRpZgorICAg
ICAgIAogICAgICAgIHIgPSBoZXJlZG9jX3dyaXRlIChoZXJlcGlwZVsxXSwgZG9jdW1lbnQs
IGRvY3VtZW50X2xlbik7CisgCisgI2lmIGRlZmluZWQgKFBJUEVTSVpFX0RZTkFNSUMpCisg
ICAgICAgaWYgKHIgPT0gRU5PU1BDIHx8IHIgPT0gRUFHQUlOKQorIAl7CisgCSAgY2xvc2Ug
KGhlcmVwaXBlWzBdKTsKKyAJICBjbG9zZSAoaGVyZXBpcGVbMV0pOworIAkgIGdvdG8gdXNl
X3RlbXBmaWxlOworIAl9CisgI2VuZGlmCisgCSAgCiAgICAgICAgaWYgKGRvY3VtZW50ICE9
IHJlZGlyZWN0ZWUtPndvcmQpCiAgCWZyZWUgKGRvY3VtZW50KTsKKioqIC4uL2Jhc2gtNS4z
LXBhdGNoZWQvZ2VuZXJhbC5jCVdlZCBKdW4gMjUgMTU6NTQ6MzUgMjAyNQotLS0gZ2VuZXJh
bC5jCVR1ZSBKdWwgIDcgMTE6MTI6MTAgMjAyNgoqKioqKioqKioqKioqKioKKioqIDU5Niw1
OTkgKioqKgotLS0gNTk2LDYyMCAtLS0tCiAgfQogIAorIGludAorIHNoX3NldG5vZGVsYXkg
KGludCBmZCkKKyB7CisgICBpbnQgZmxhZ3M7CisgCisgICBpZiAoKGZsYWdzID0gZmNudGwg
KGZkLCBGX0dFVEZMLCAwKSkgPCAwKQorICAgICByZXR1cm4gLTE7CisgCisgICAvKiBUaGlz
IGlzIGRlZmluZWQgdG8gT19OREVMQVkgaW4gZmlsZWNudGwuaCBpZiBPX05PTkJMT0NLIGlz
IG5vdCBwcmVzZW50CisgICAgICBhbmQgT19OREVMQVkgaXMgZGVmaW5lZC4gKi8KKyAjaWZk
ZWYgT19OT05CTE9DSworICAgZmxhZ3MgfD0gT19OT05CTE9DSzsKKyAjZW5kaWYKKyAKKyAj
aWZkZWYgT19OREVMQVkKKyAgIGZsYWdzIHw9IE9fTkRFTEFZOworICNlbmRpZgorIAorICAg
cmV0dXJuIChmY250bCAoZmQsIEZfU0VURkwsIGZsYWdzKSk7CisgfQorIAogIC8qIEp1c3Qg
YSB3cmFwcGVyIGZvciB0aGUgZGVmaW5lIGluIGluY2x1ZGUvZmlsZWNudGwuaCAqLwogIGlu
dAoqKiogLi4vYmFzaC01LjMtcGF0Y2hlZC9nZW5lcmFsLmgJV2VkIEp1biAyNSAxNTo1Mjo0
NyAyMDI1Ci0tLSBnZW5lcmFsLmgJVHVlIEp1bCAgNyAxMToxMzo0OCAyMDI2CioqKioqKioq
KioqKioqKgoqKiogMzE4LDMyMSAqKioqCi0tLSAzMTgsMzIyIC0tLS0KICAKICBleHRlcm4g
aW50IHNoX3Vuc2V0X25vZGVsYXlfbW9kZSAoaW50KTsKKyBleHRlcm4gaW50IHNoX3NldG5v
ZGVsYXkgKGludCk7CiAgZXh0ZXJuIGludCBzaF9zZXRjbGV4ZWMgKGludCk7CiAgZXh0ZXJu
IGludCBzaF92YWxpZGZkIChpbnQpOwoqKiogLi4vYmFzaC01LjMtcGF0Y2hlZC9jb25maWd1
cmUuYWMJTW9uIEp1biAzMCAxMDowNToyNCAyMDI1Ci0tLSBjb25maWd1cmUuYWMJVHVlIEp1
bCAgNyAxMToyNTozMiAyMDI2CioqKioqKioqKioqKioqKgoqKiogMTIxMCwxMjE0ICoqKioK
ICBpc2MqKQkJTE9DQUxfQ0ZMQUdTPS1EaXNjMzg2IDs7CiAgcmhhcHNvZHkqKQlMT0NBTF9D
RkxBR1M9LURSSEFQU09EWSA7OwohIGRhcndpbiopCUxPQ0FMX0NGTEFHUz0tRE1BQ09TWCA7
OwogIHNjbzMuMnY1KikJTE9DQUxfQ0ZMQUdTPSItYiBlbGYgLURXQUlUUElEX0JST0tFTiAt
RFBBVEhfTUFYPTEwMjQiIDs7CiAgc2NvMy4ydjQqKQlMT0NBTF9DRkxBR1M9Ii1ETVVTVF9V
TkJMT0NLX0NITEQgLURQQVRIX01BWD0xMDI0IiA7OwotLS0gMTIxMCwxMjE0IC0tLS0KICBp
c2MqKQkJTE9DQUxfQ0ZMQUdTPS1EaXNjMzg2IDs7CiAgcmhhcHNvZHkqKQlMT0NBTF9DRkxB
R1M9LURSSEFQU09EWSA7OwohIGRhcndpbiopCUxPQ0FMX0NGTEFHUz0iLURNQUNPU1ggLURQ
SVBFU0laRV9EWU5BTUlDIiA7OwogIHNjbzMuMnY1KikJTE9DQUxfQ0ZMQUdTPSItYiBlbGYg
LURXQUlUUElEX0JST0tFTiAtRFBBVEhfTUFYPTEwMjQiIDs7CiAgc2NvMy4ydjQqKQlMT0NB
TF9DRkxBR1M9Ii1ETVVTVF9VTkJMT0NLX0NITEQgLURQQVRIX01BWD0xMDI0IiA7OwoqKiog
Li4vYmFzaC01LjMtcGF0Y2hlZC9jb25maWd1cmUJTW9uIEp1biAzMCAxMDowNTozMCAyMDI1
Ci0tLSBjb25maWd1cmUJVHVlIEp1bCAgNyAxMToyNTozNiAyMDI2CioqKioqKioqKioqKioq
KgoqKiogMjMxMzQsMjMxMzggKioqKgogIGlzYyopCQlMT0NBTF9DRkxBR1M9LURpc2MzODYg
OzsKICByaGFwc29keSopCUxPQ0FMX0NGTEFHUz0tRFJIQVBTT0RZIDs7CiEgZGFyd2luKikJ
TE9DQUxfQ0ZMQUdTPS1ETUFDT1NYIDs7CiAgc2NvMy4ydjUqKQlMT0NBTF9DRkxBR1M9Ii1i
IGVsZiAtRFdBSVRQSURfQlJPS0VOIC1EUEFUSF9NQVg9MTAyNCIgOzsKICBzY28zLjJ2NCop
CUxPQ0FMX0NGTEFHUz0iLURNVVNUX1VOQkxPQ0tfQ0hMRCAtRFBBVEhfTUFYPTEwMjQiIDs7
Ci0tLSAyMzEzNCwyMzEzOCAtLS0tCiAgaXNjKikJCUxPQ0FMX0NGTEFHUz0tRGlzYzM4NiA7
OwogIHJoYXBzb2R5KikJTE9DQUxfQ0ZMQUdTPS1EUkhBUFNPRFkgOzsKISBkYXJ3aW4qKQlM
T0NBTF9DRkxBR1M9Ii1ETUFDT1NYIC1EUElQRVNJWkVfRFlOQU1JQyIgOzsKICBzY28zLjJ2
NSopCUxPQ0FMX0NGTEFHUz0iLWIgZWxmIC1EV0FJVFBJRF9CUk9LRU4gLURQQVRIX01BWD0x
MDI0IiA7OwogIHNjbzMuMnY0KikJTE9DQUxfQ0ZMQUdTPSItRE1VU1RfVU5CTE9DS19DSExE
IC1EUEFUSF9NQVg9MTAyNCIgOzsK

--------------HZgLhe9x4OokRLUpjmYo1OTz--

--------------Iy6YMowgVV570ED1keyL7sXA--

--------------tlyQoSY9wPEOCoksr3ogvwFr
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

-----BEGIN PGP SIGNATURE-----

wmMEABEIACMWIQR8ATX7CIqvbGbGULm7WGnwZOp0qwUCalEEywUDAAAAAAAKCRC7WGnwZOp0q+rQ
AKCScP1NTFVA1l6HvHHI8HsxYaMFrwCfXPCyM8DDS9VxMfRlmJsx2EyCvAk=
=Fjl1
-----END PGP SIGNATURE-----

--------------tlyQoSY9wPEOCoksr3ogvwFr--