On Mar 5 23:34, Takashi Yano wrote: > When transferring huge file using scp, the "lost connection" error > sometimes happen. This is due to fhandler_pipe_fifo::raw_write() > accidentally sends data that is not reported in th return value when > interrupted by a signal. The cause of the problem is that CancelIo() > responds success even if NtWriteFile() already sends the data. > > The following testcase using plain Win32 APIs reproduces the issue. > The output will be something like: > W: 8589934592 > R: 9280061440 > Much more data was received than the sender thought it had sent. > [...] > Addresses: https://cygwin.com/pipermail/cygwin/2025-January/257143.html > Fixes: 4003e3dfa1b9 ("Cygwin: pipes: always terminate async IO in blocking > mode") > Reported-by: Jay M Martin <jaymmartin_...@cox.net> > Reviewed-by: Corinna Vinschen <cori...@vinschen.de> > Signed-off-by: Takashi Yano <takashi.y...@nifty.ne.jp> > --- > winsup/cygwin/fhandler/pipe.cc | 28 ++++++++++++++++++++-------- > winsup/cygwin/release/3.6.0 | 3 +++ > 2 files changed, 23 insertions(+), 8 deletions(-)
Great job, go for it! Thanks, Corinna