This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Regression (last snapshot)


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

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]