# Small regression on Windows

3 messages from 2017-02-13 to 2017-02-13. Participants: Johannes Sixt, Jeff Hostetler, Junio C Hamano.
Thread: https://gitlist.dev/t/45128

## Johannes Sixt, 2017-02-13 18:00

Subject: Small regression on Windows
Message-ID: <6bc02b0a-a463-1f0c-3fee-ba27dd2482e4@kdbg.org>
URL: https://gitlist.dev/e/6bc02b0a-a463-1f0c-3fee-ba27dd2482e4%40kdbg.org

```
Please type this, preferably outside of any repo to avoid that it is 
changed; note the command typo:

    git -c help.autocorrect=40 ceckout

Git waits for 4 seconds, but does not write anything until just before 
it exits. It bisects to

a9b8a09c3c30886c79133da9f48ef9f98c21c3b2 is the first bad commit
commit a9b8a09c3c30886c79133da9f48ef9f98c21c3b2
Author: Jeff Hostetler <jeffhost@microsoft.com>
Date:   Thu Dec 22 18:09:23 2016 +0100

     mingw: replace isatty() hack

     Git for Windows has carried a patch that depended on internals
     of MSVC runtime, but it does not work correctly with recent MSVC
     runtime. A replacement was written originally for compiling
     with VC++. The patch in this message is a backport of that
     replacement, and it also fixes the previous attempt to make
     isatty() tell that /dev/null is *not* an interactive terminal.

     Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
     Tested-by: Beat Bolli <dev+git@drbeat.li>
     Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
     Signed-off-by: Junio C Hamano <gitster@pobox.com>

:040000 040000 bc3c75bdfc766fe478e160a9452c31bfef50b505 
f7183c3a0726fef7161d5f9ff8c997260025f1bb M      compat

Any ideas? I haven't had time to dig any further.

-- Hannes


```

## Jeff Hostetler, 2017-02-13 20:32

Subject: Re: Small regression on Windows
Message-ID: <8488f55c-37b1-1ded-53c5-7cd268210391@jeffhostetler.com>
URL: https://gitlist.dev/e/8488f55c-37b1-1ded-53c5-7cd268210391%40jeffhostetler.com
In-Reply-To: <6bc02b0a-a463-1f0c-3fee-ba27dd2482e4@kdbg.org>

```


On 2/13/2017 1:00 PM, Johannes Sixt wrote:
> Please type this, preferably outside of any repo to avoid that it is 
> changed; note the command typo:
>
>    git -c help.autocorrect=40 ceckout
>
> Git waits for 4 seconds, but does not write anything until just before 
> it exits. It bisects to
>
> a9b8a09c3c30886c79133da9f48ef9f98c21c3b2 is the first bad commit
> commit a9b8a09c3c30886c79133da9f48ef9f98c21c3b2
> Author: Jeff Hostetler <jeffhost@microsoft.com>
> Date:   Thu Dec 22 18:09:23 2016 +0100
>
>     mingw: replace isatty() hack
>
>     Git for Windows has carried a patch that depended on internals
>     of MSVC runtime, but it does not work correctly with recent MSVC
>     runtime. A replacement was written originally for compiling
>     with VC++. The patch in this message is a backport of that
>     replacement, and it also fixes the previous attempt to make
>     isatty() tell that /dev/null is *not* an interactive terminal.
>
>     Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
>     Tested-by: Beat Bolli <dev+git@drbeat.li>
>     Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
>     Signed-off-by: Junio C Hamano <gitster@pobox.com>
>
> :040000 040000 bc3c75bdfc766fe478e160a9452c31bfef50b505 
> f7183c3a0726fef7161d5f9ff8c997260025f1bb M      compat
>
> Any ideas? I haven't had time to dig any further.

I'm investigating now.

The warning text is being written to stderr and then main thread sleeps 
for the 4 seconds.
However, stderr has been redirected to the pipe connected to the 
console_thread that
handles the coloring/pager.  It is in a blocking ReadFile on the pipe 
and is thus stuck until
the main thread runs the corrected command and closes the pipe.  It then 
sees the EOF
and prints everything in the pipe buffer.

I'll look into fixing this now.

Jeff



```

## Junio C Hamano, 2017-02-13 20:47

Subject: Re: Small regression on Windows
Message-ID: <xmqqbmu5ddhj.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqbmu5ddhj.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <8488f55c-37b1-1ded-53c5-7cd268210391@jeffhostetler.com>

```
Jeff Hostetler <git@jeffhostetler.com> writes:

> The warning text is being written to stderr and then main thread
> sleeps for the 4 seconds.  However, stderr has been redirected to
> the pipe connected to the console_thread that handles the
> coloring/pager.  It is in a blocking ReadFile on the pipe and is
> thus stuck until the main thread runs the corrected command and
> closes the pipe.  It then sees the EOF and prints everything in
> the pipe buffer.

IOW, somehow your stderr is not flushing automatically?

> I'll look into fixing this now.

Thanks.

```
