Subject: consistency problem on ZFS

From: Yann Hodique <[email-masked]>
Date: Sun, 28 Apr 2013 20:11:25 +0100

Hi,

I have a weird problem that seems to manifest itself only on ZFS
(actually the Zevo distribution, on OSX). With git 1.8.2.1 by the way.
I just switched to ZFS, so I can't blame that particular version of git.

"Sometimes" (I'd say something like 10-15% of the time, fairly
reproducible anyway), "git diff-files" will see changes that don't exist
for some time, then will catch up with the actual state of the file:

$ git checkout next; git diff-files; git checkout next; git diff-files
Already on 'next'
:100644 100644 bd774cccaa14e061c3c26996567ee28f4f77ec80 0000000000000000000000000000000000000000 M	magit.el
Already on 'next'
$

Here it was pretty quick, but sometimes I would see those phantom
diffs for more than 5 seconds.

Interestingly, if I manage to run "git diff" during that time, this one
reports no changes. See https://gist.github.com/sigma/5477827 for a more
complex trace: "git merge" was complaining about changes, yet neither "git
diff" nor "git status" did show any. That's the scenario I tried to
minimize to the invocation above.

I'm willing to accept that the filesystem has some responsibility there,
but the inconsistency bothers me. Anything I can provide to help finding
the root cause of the issue ?

Thanks for any hint (and workarounds are highly welcome, as it breaks
many of my scripts, and magit too :))

Yann.

-- 
A Duke must always take control of his household, for if he does not
rule those closest to him, he cannot hope to govern a planet.

  -- DUKE PAULUS ATREIDES