On Jul 29 13:18, Ken Brown wrote: > On 7/29/2019 4:45 AM, Corinna Vinschen wrote: > > On Jul 27 15:24, Ken Brown wrote: > >> On 7/27/2019 6:21 AM, Houder wrote: > >>> On Fri, 26 Jul 2019 22:12:43, Ken Brown wrote: > >>> > >>>> On 7/22/2019 2:47 PM, Houder wrote: > >>> > >>>>> The specific regression as reported, has gone. > >>>>> > >>>>> 64-@@ uname -a > >>>>> CYGWIN_NT-6.1 Seven 3.1.0s(0.339/5/3) 2019-07-22 16:43 x86_64 Cygwin > >>>>> 64-@@ ls -lL <(grep bash .bashrc) > >>>>> pr-------- 1 Henri None 0 Jul 22 20:36 /dev/fd/63 > >>>> > >>> Over all the behavior has simularity w/ the error reported by David Karr: > >>> > >>> https://cygwin.com/ml/cygwin/2019-07/msg00150.html > >>> ( Piping input from subprocess loses track of temp file ) > >> [...] > >> Repeating this under the 20190722 or 20190725 snapshots gave slightly worse > >> results (close to 500 errors). Using my own unoptimized build of cygwin1.dll, > >> the error count went up to about 650. > > > > I just tried this myself and I can't reproduce the problem. 1000 runs, > > no error. > > Interesting. And you ran this under X11 in an xterm window? I didn't, but I just did and the result is the same, no errors. > >> I tried running under gdb, but I couldn't get grep to fail. More precisely, I > >> didn't see an error message from grep. Every run looked like this: > >> > >> $ gdb bash > >> GNU gdb (GDB) (Cygwin 8.2.1-1) 8.2.1 > >> [...] > >> (gdb) r -c 'ls -lL <(grep bash .bashrc)' > >> Starting program: /usr/bin/bash -c 'ls -lL <(grep bash .bashrc)' > >> [...] > >> pr-------- 1 kbrown None 0 2019-07-27 11:07 /dev/fd/63 > >> [...] > >> [Inferior 1 (process 21712) exited normally] > >> > >> It would be better to be able to debug ls and/or grep, but I don't know how to > >> get to subprocesses in gdb. And I think I have to start with 'gdb bash' in > >> order for the process substitution to happen. > > > > Yeah, subprocess debugging is a problem in GDB. Given how this works, > > you can at least take grep out of the picture. Bash is doing all the > > lifting, so it's just bash and ls. Did you try to reproduce this under > > strace? > > Yes, but there I get an error (even under mintty) for a different reason: > > $ strace -o trace.out ls -lL <(grep bash .bashrc) > ls: cannot access '/dev/fd/63': No such file or directory No, please run bash: strace -o trace.out bash -c 'ls -lL <(grep bash .bashrc)' Otherwise there's no process actually creating the pipe, given the <() expression is a bash expression. Corinna -- Corinna Vinschen Cygwin Maintainer