Re: t0027 racy?
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Aug 8, 2016, 20:32 UTC
- Message-ID
- <20160808203224.GA28431@tb-raspi>
- In-Reply-To
- <20160808152926.mciovipy5qlnqegs@sigill.intra.peff.net>
On Mon, Aug 08, 2016 at 11:29:26AM -0400, Jeff King wrote:
Show 36 quoted lines
> On Mon, Aug 08, 2016 at 05:05:07PM +0200, Johannes Schindelin wrote:
>
> > I remember that you did a ton of work on t0027. Now I see problems, and
> > not only that the entire script now takes a whopping 4 minutes 20 seconds
> > to run on my high-end Windows machine.
> >
> > It appears that t0027 fails randomly for me, in seemingly random places.
> > Sometimes all 1388 cases pass. Sometimes "29 - commit NNO files crlf=true
> > attr=auto LF" fails. Sometimes it is "24 - commit NNO files crlf=false
> > attr=auto LF". Sometimes it is "114 - commit NNO files crlf=false
> > attr=auto LF", and sometimes "111 - commit NNO files attr=auto aeol=lf
> > crlf=false CRLF_mix_LF".
> >
> > When I run it with -i -v -x --tee, it passes every single time (taking
> > over 5 minutes, just to make things worse)...
> >
> > Any idea about any possible races?
>
> Try:
>
> https://github.com/peff/git/blob/meta/stress
>
> which you can run as "sh /path/to/stress t0027" in the top-level of your
> git repository. I got failure within about 30 seconds on t0027 (though 5
> minutes? Yeesh. It runs in 9s on my laptop. I weep for you).
>
> The verbose output is not very exciting, though:
>
> expecting success:
> check_warning "$lfwarn" ${pfx}_LF.err
>
> --- NNO_attr_auto_aeol_crlf_false_LF.err.expect 2016-08-08 15:26:37.061701392 +0000
> +++ NNO_attr_auto_aeol_crlf_false_LF.err.actual 2016-08-08 15:26:37.061701392 +0000
> @@ -1 +0,0 @@
> -warning: LF will be replaced by CRLF
> not ok 114 - commit NNO files crlf=false attr=auto LF(I realized that t0027 is not yet self-explaining, I have it on my list)
NNO_attr_auto_aeol_crlf_false_LF means:
NNO: "Not NOrmalized" A file had been commited with CRLF in the repo attr_auto: .gitattributes has "* text=auto" aeol_eol .gitattributes has "eol=crlf" crlf_false git config core.autocrlf = false LF We commit a file with LF line endings.
This should happend: - The file is commited "as is", with LF line endings. - While commiting, git should print the warning - "warning: LF will be replaced by CRLF" to stderr - stderr is piped (redirected) into NNO_attr_auto_aeol_crlf_false_LF.err - we grep for "will be replaced by" in xx.err and pipe it into xx.err.actual
The rest is test_cmp, this is what you see. The warning is missing, but should be there:
The file has LF, and after commit and a new checkout these LF will be convertet into CRLF.
So why isn't the warning there (but here on my oldish machines)