threads / discuss / 25447

false positives from git diff-index when used with --git-dir

Subject: false positives from git diff-index when used with --git-dir

## tl;dr

3 messages between Oct 14, 2010 and Oct 14, 2010.

replies: 2people: 2as markdown or json

Alexander Gladysh· Oct 14, 2010, 14:40 UTC · lore
Hi, list!

$ git --version git version 1.7.3.1

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.10 Release: 10.10 Codename: maverick

I'm *sometimes* (once in about ten times I use it -- repository changes between invocations of course) getting false positives from git diff-index when I invoke git from another directory:

git --git-dir=path/to/.git --work-tree=path/to update-index -q --refresh git --git-dir=path/to/.git --work-tree=path/to diff-index --exit-code --quiet HEAD

This is *really* annoying and really kills the benifits from my workflow automation scripts.

Unfortunately I can't find a reproducible use case for this bug.
Is there anything I can do to help catch it?

Thanks, Alexander.

Jeff King· Oct 14, 2010, 17:02 UTC · re: Alexander Gladysh · lore

Re: false positives from git diff-index when used with --git-dir

On Thu, Oct 14, 2010 at 06:40:51PM +0400, Alexander Gladysh wrote:
Show 14 quoted lines
> I'm *sometimes* (once in about ten times I use it -- repository
> changes between invocations of course) getting false positives from
> git diff-index when I invoke git from another directory:
> 
> git --git-dir=path/to/.git --work-tree=path/to update-index -q --refresh
> git --git-dir=path/to/.git --work-tree=path/to diff-index --exit-code
> --quiet HEAD
> 
> This is *really* annoying and really kills the benifits from my
> workflow automation scripts.
> 
> Unfortunately I can't find a reproducible use case for this bug.
> 
> Is there anything I can do to help catch it?
Can it reproduce over a large number of trials? I.e., something like:
  while true; do
    git ... update-index ...
    git ... diff-index ... || echo failed
  done

If so, try adding a "sleep 1" between the two commands. If that fixes it, it implies a race condition in git.

You could also try running under valgrind to see if there are any bad memory accesses, which could also produce intermittent buggy behavior.

-Peff
Alexander Gladysh· Oct 14, 2010, 17:20 UTC · re: Jeff King · lore

Re: false positives from git diff-index when used with --git-dir

On Thu, Oct 14, 2010 at 21:02, Jeff King <peff@peff.net> wrote:
> On Thu, Oct 14, 2010 at 06:40:51PM +0400, Alexander Gladysh wrote:
>> I'm *sometimes* (once in about ten times I use it -- repository
>> changes between invocations of course) getting false positives from
>> git diff-index when I invoke git from another directory:
>> git --git-dir=path/to/.git --work-tree=path/to update-index -q --refresh
>> git --git-dir=path/to/.git --work-tree=path/to diff-index --exit-code
>> --quiet HEAD
>> This is *really* annoying and really kills the benifits from my
>> workflow automation scripts.
>> Unfortunately I can't find a reproducible use case for this bug.
>> Is there anything I can do to help catch it?
> Can it reproduce over a large number of trials? I.e., something like:
>  while true; do
>    git ... update-index ...
>    git ... diff-index ... || echo failed
>  done
> If so, try adding a "sleep 1" between the two commands. If that fixes
> it, it implies a race condition in git.

No, I'm not able to reproduce it this way. (Perhaps some more complex operations on git tree are required -- looks like it happens only if tree was changed.)

> You could also try running under valgrind to see if there are any bad
> memory accesses, which could also produce intermittent buggy behavior.
Thanks, I'll try it.

It feels like a race condition somewhere. (Quite possibly even in my automation tool -- since I'm not able to reproduce bug outside of it -- if so, sorry for the noise.)

I'll try some more debugging and will get back to you if I will have any new information.

Thank you, Alexander.

← back to recent threads