On Tue, 15 Aug 2023 09:53:16 +0900
キャロウ マーク wrote:
> > On Aug 15, 2023, at 9:30, Takashi Yano <takashi.y...@nifty.ne.jp> wrote:
> > 
> > Your test case does not work in command prompt as well.
> > 
> > Try
> > type testfile | test-pipe sizeoftestfile
> > in command prompt. It will fail.
> 
> Interesting.
> 
> > 
> > New pipe implementation since cygwin 3.4.x provides the pipes
> > more similar to pipe in command prompt for non-cygwin apps.
> 
> What are the differences between these pipes? What changed?

Many changes. But, the change which triggers this behaviour
is setting FILE_SYNCHRONOUS_IO_NONALERT create option.

With this option, seekg() of Microsoft library gets success
for pipes, despite it should not I suppose.

In Linux, man page states that fseek() on pipes will fail.

> > Since your test case is compiled with cl.exe, it is non-cygwin
> > apps.
> 
> When the failure first appeared the bash shell included with Git for Windows 
> was being used to run the pipe (`bash -c "cat foo | bar”`). The shell was 
> started by ctest which had been run from PowerShell. Is this cygwin or 
> non-cygwin?

It depends on "bar". If bar is compiled with cl.exe or gcc/g++ in
MSYS2 mingw environment, it is non-cygwin app.

> in https://github.com/git-for-windows/git/issues/4464#issuecomment-1671137446 
> the author provided minimal adaption to the reproducer to compile it with g++ 
> and reproduced the failure on Cygwin. It looks like the failure happens for 
> both cygwin and non-cygwin. It is probably related to the new pipe 
> implementation you mentioned.

Is there any failure case where the pipe reader is cygwin (or MSYS2)
binary?

-- 
Takashi Yano <takashi.y...@nifty.ne.jp>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to