Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API

Subsystems: the rest

4 messages, 3 authors, 2016-06-15 · open the first message on its own page

Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:43:33

Marius Storm-Olsen schrieb:
There was a problem with racy conditions, which this revision fixes.
The problem was that fstat was using the builtin implementation, which for
for some reason is off by some amount of seconds. (This is probably due to
some leap-year issue in one of the implementations. However, Microsoft 
tells
us to use 116444736000000000 in http://support.microsoft.com/kb/167296, so
I'll stick with that.)
Thanks for the analysis and new patch. Indeed, FILETIME is UTC, which is 
good; the native implementation returns local time, if I read the code 
(of msvcrt) correctly.
With the our own implementations of lstat & fstat, the following test cases
are now fixed:
    t4116-apply-reverte.sh
        ok 3: apply in reverse
    t4200-rerere.sh
        ok 17: young records still live
However, the following test cases seems to fail now:
    t6024-recursive-merge.sh
        FAIL 1: setup tests
        FAIL 3: result contains a conflict
        FAIL 4: virtual trees were processed
        FAIL 5: refuse to merge binaries

See attached test case logs.
Are some of these test cases unstable, so the result will fluctuate on
Windows?
I see many more failures. in:

t4001-diff-rename.sh: 5
t4101-apply-nonl.sh: all
t4102-apply-rename.sh: 2,3,4
t4116-apply-reverse.sh: 3
t4200-rerere.sh: 12,13,17
t5515-fetch-merge-logic.sh: 54
etc...

There is something fishy going on.

But at least the failure in t4116 is easy to work around:
diff --git a/t/t4116-apply-reverse.sh b/t/t4116-apply-reverse.sh
index fc2f622..f3e0c4a 100755
--- a/t/t4116-apply-reverse.sh
+++ b/t/t4116-apply-reverse.sh
@@ -43,7 +43,8 @@ test_expect_success 'apply in reverse' '
         git reset --hard second &&
         git apply --reverse --binary --index patch &&
         git diff >diff &&
-       git diff /dev/null diff
+       : > empty &&
+       git diff empty diff

  '

-- Hannes

Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:33

Hi,

On Mon, 3 Sep 2007, Johannes Sixt wrote:
Marius Storm-Olsen schrieb:
quoted
There was a problem with racy conditions, which this revision fixes.
The problem was that fstat was using the builtin implementation, which for
for some reason is off by some amount of seconds. (This is probably due to
some leap-year issue in one of the implementations. However, Microsoft
tells
us to use 116444736000000000 in http://support.microsoft.com/kb/167296, so
I'll stick with that.)
Thanks for the analysis and new patch. Indeed, FILETIME is UTC, which is
good; the native implementation returns local time, if I read the code (of
msvcrt) correctly.
quoted
With the our own implementations of lstat & fstat, the following test cases
are now fixed:
    t4116-apply-reverte.sh
        ok 3: apply in reverse
    t4200-rerere.sh
        ok 17: young records still live
However, the following test cases seems to fail now:
    t6024-recursive-merge.sh
        FAIL 1: setup tests
        FAIL 3: result contains a conflict
        FAIL 4: virtual trees were processed
        FAIL 5: refuse to merge binaries

See attached test case logs.
Are some of these test cases unstable, so the result will fluctuate on
Windows?
I see many more failures. in:

t4001-diff-rename.sh: 5
t4101-apply-nonl.sh: all
t4102-apply-rename.sh: 2,3,4
t4116-apply-reverse.sh: 3
t4200-rerere.sh: 12,13,17
t5515-fetch-merge-logic.sh: 54
etc...
Funny.  I do not get most of these:

t4200-rerere,
t5510-fetch,
t5515-fetch-merge-logic,
t5700-clone-reference,
t5701-clone-local,
t7004

This is all on top of 4msysgit's "devel" branch, and the t5* and t7004 
failed there already.

Oh, and I actually run from sh, not from cmd.  (Wouldn't you have 
guessed?)

Ciao,
Dscho

Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API

From: Marius Storm-Olsen <hidden>
Date: 2016-06-15 22:43:33

Johannes Schindelin wrote:
On Mon, 3 Sep 2007, Johannes Sixt wrote:
quoted
I see many more failures. in:

t4001-diff-rename.sh: 5
t4101-apply-nonl.sh: all
t4102-apply-rename.sh: 2,3,4
t4116-apply-reverse.sh: 3
t4200-rerere.sh: 12,13,17
t5515-fetch-merge-logic.sh: 54
etc...
Funny.  I do not get most of these:

t4200-rerere,
t5510-fetch,
t5515-fetch-merge-logic,
t5700-clone-reference,
t5701-clone-local,
t7004

This is all on top of 4msysgit's "devel" branch, and the t5* and
t7004 failed there already.

Oh, and I actually run from sh, not from cmd.  (Wouldn't you have 
guessed?)
I was also running the tests under sh, however on top of mingw.git, and
not 4msysgit.git.

--
.marius

Re: [PATCH] Add a new lstat and fstat implementation based on Win32 API

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:43:33

Hi,

On Mon, 3 Sep 2007, Marius Storm-Olsen wrote:
Johannes Schindelin wrote:
quoted
t4200-rerere,
t5510-fetch,
t5515-fetch-merge-logic,
t5700-clone-reference,
t5701-clone-local,
t7004

This is all on top of 4msysgit's "devel" branch, and the t5* and t7004 
failed there already.

Oh, and I actually run from sh, not from cmd.  (Wouldn't you have 
guessed?)
I was also running the tests under sh, however on top of mingw.git, and 
not 4msysgit.git.
I switched back recently, as more tests are succeeding in 
4msysgit.git's "devel" ATM.

Ciao,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help