threads / discuss / 45128

Small regression on Windows

Subject: Small regression on Windows

## tl;dr

3 messages between Feb 13, 2017 and Feb 13, 2017.

replies: 2people: 3as markdown or json

Johannes Sixt· Feb 13, 2017, 18:00 UTC · lore

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· Feb 13, 2017, 20:32 UTC · re: Johannes Sixt · lore

Re: Small regression on Windows

On 2/13/2017 1:00 PM, Johannes Sixt wrote:
Show 31 quoted lines
> 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· Feb 13, 2017, 20:47 UTC · re: Jeff Hostetler · lore

Re: Small regression on Windows

Jeff Hostetler <git@jeffhostetler.com> writes:
Show 7 quoted lines
> 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.

← back to recent threads