Bug: bash redirect "magic" variable content to input of command hangs (upstream of https://github.com/git-for-windows/git/issues/5001)

jojelino jojelino@gmail.com
Tue Jun 11 14:19:11 GMT 2024


On 6/10/2024 8:12 PM, Holger Klene via Cygwin wrote:
> This is:
> GNU bash, Version 5.2.21(1)-release (x86_64-pc-cygwin)
> 
> Was also reproduced in git-bash 5.2.26(1)-release (also cygwin)
> but not in WSL-bash 5.1.16 (independent of cygwin)
This regression is introduced in bash-5.1, Introduced changes in both 
here-string, here-document in 5.1 caused hangs.

Apart from that, unlike to Linux, Cygwin chunks io of pipe into 64K and 
NtWriteFile writes to a pipe even after the pipe exceeded buffer size 
while reporting STATUS_PENDING, So in Cygwin, divide by 2 of actual 
buffer size is within boundary of pipe buffer as seen below.
$ dd if=/dev/urandom bs=63K status=progress | sleep 3
129024 bytes (129 kB, 126 KiB) copied, 3 s, 42.8 kB/s
$ dd if=/dev/urandom bs=128 status=progress | sleep 3
65664 bytes (66 kB, 64 KiB) copied, 3 s, 21.9 kB/s

And current bash package make wrong estimate of pipe size of host 
environment according to builtins/psize.sh of cygport source package of 
bash.

====
Excerpt from builtins/psize.sh of bash, You can guess what the result 
will be From the above.
./psize.aux 2>"$TMPFILE" | sleep 3




More information about the Cygwin mailing list