Re: t0025 flaky on OSX
From: Torsten Bögershausen <hidden>
Date: 2017-04-24 19:48:40
Subsystem:
the rest · Maintainer:
Linus Torvalds
On 2017-04-24 19:00, Torsten Bögershausen wrote:
On 2017-04-24 18:45, Lars Schneider wrote:quoted
Hi, "t0025.3 - crlf=true causes a CRLF file to be normalized" failed sporadically on next and master recently: https://travis-ci.org/git/git/jobs/225084459#L2382 https://travis-ci.org/git/git/jobs/223830505#L2342 Are you aware of a race condition in the code or in the test?Not yet - I'll have a look
So,
The test failed under Linux & pu of the day, using Peff's
stress script.
not ok 3 - crlf=true causes a CRLF file to be normalized
The good case (simplified):
$ git status
modified: CRLFonly
Untracked files:
.gitattributes
$ git diff | tr "\015" Q
warning: CRLF will be replaced by LF in CRLFonly.
The file will have its original line endings in your working directory.diff --git a/CRLFonly b/CRLFonly
index 44fc21c..666dbf4 100644
--- a/CRLFonly
+++ b/CRLFonly@@ -1,7 +1,7 @@ -IQ -amQ -veryQ -veryQ -fineQ -thankQ -youQ +I +am +very +very +fine +thank +you --------------------
The failed case:
$ git status
Untracked files:
.gitattributes
-----------------------
$ ls -al -i
total 28
3430195 drwxr-xr-x 3 tb tb 4096 Apr 24 21:19 .
3427617 drwxr-xr-x 3 tb tb 4096 Apr 24 21:19 ..
3429958 -rw-r--r-- 1 tb tb 37 Apr 24 21:19 CRLFonly
3432574 drwxr-xr-x 8 tb tb 4096 Apr 24 21:27 .git
3425599 -rw-r--r-- 1 tb tb 14 Apr 24 21:19 .gitattributes
3430089 -rw-r--r-- 1 tb tb 24 Apr 24 21:19 LFonly
3430174 -rw-r--r-- 1 tb tb 36 Apr 24 21:19 LFwithNUL
-----------------
#After
$ mv CRLFonly tmp
$ cp tmp CRLFonly
$ ls -al -i
3430195 drwxr-xr-x 3 tb tb 4096 Apr 24 21:36 .
3427617 drwxr-xr-x 3 tb tb 4096 Apr 24 21:19 ..
3401599 -rw-r--r-- 1 tb tb 37 Apr 24 21:36 CRLFonly
3432574 drwxr-xr-x 8 tb tb 4096 Apr 24 21:36 .git
3425599 -rw-r--r-- 1 tb tb 14 Apr 24 21:19 .gitattributes
3430089 -rw-r--r-- 1 tb tb 24 Apr 24 21:19 LFonly
3430174 -rw-r--r-- 1 tb tb 36 Apr 24 21:19 LFwithNUL
3429958 -rw-r--r-- 1 tb tb 37 Apr 24 21:19 tmp
$ git status
modified: CRLFonly
Untracked files:
.gitattributes
tmp
So all in all it seams as if there is a very old race condition here,
which we "never" have seen yet.
Moving the file to a different inode number fixes the test case,
Git doesn't treat it as unchanged any more.