cygrunsrv + sshd + rsync = 20 times too slow -- throttled?

Corinna Vinschen corinna-cygwin@cygwin.com
Wed Sep 15 11:49:45 GMT 2021


On Sep 15 07:41, Ken Brown wrote:
> On 9/15/2021 7:13 AM, Corinna Vinschen wrote:
> > On Sep 15 19:48, Takashi Yano wrote:
> > > On Wed, 15 Sep 2021 11:57:44 +0200
> > > Corinna Vinschen wrote:
> > > > ...but we're unconditionally using NtQueryInformationFile at the start
> > > > of pipe_data_available.  If this is the read side of the pipe, isn't
> > > > there a chance that another (non-Cygwin) process is performing a blocking
> > > > read and this call will hang?
> > > 
> > > I will check that.
> > 
> > Something like that comes to mind:
> > [...]
> >     if (fpli.NamedPipeState & FILE_PIPE_CLOSING_STATE)
> >       return -1;
> 
> Maybe we want to call NtQueryInformationFile in all cases except FH_PIPER,
> keeping in mind that there are callers of pipe_data_available other than
> pipes.  That way we can still test for FILE_PIPE_CLOSING_STATE at the end in
> many cases.

Ouch, right.  I totally missed this.


Corinna


More information about the Cygwin-developers mailing list