Subject: Re: t1450-fsck (sometimes/often) failes on Mac OS X

From: Thomas Rast <[email-masked]>
Date: Mon, 16 Jul 2012 09:57:50 +0200

Torsten Bögershausen <[email-masked]> writes:

> Now it appeared on next as well, so it's time to look a little bit deeper.
>
> This test case of t1450 fails:
> test_expect_success 'tag pointing to something else than its type' '
>
> To debug more, I added an exit 0 here to inspect the file named out:
> diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh
> index 5b79c51..f1f45c9 100755
> --- a/t/t1450-fsck.sh
> +++ b/t/t1450-fsck.sh
> @@ -179,6 +179,7 @@ test_expect_success 'tag pointing to something else than its type' '
>         test_when_finished "git update-ref -d refs/tags/wrong" &&
>         test_must_fail git fsck --tags 2>out &&
>         cat out &&
> +       exit 0
>         grep "error in tag.*broken links" out
>  '
>
> Linux:
> error: Object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a blob, not a commit
> error in tag 66f6581d549f70e05ca586bc2df5c15a95662c36: broken links
> error in tag 66f6581d549f70e05ca586bc2df5c15a95662c36: could not load tagged object
>
> Mac OS X:
> error: Object 63499e4ea8e096b831515ceb1d5a7593e4d87ae5 is a commit, not a blob
> error: 63499e4ea8e096b831515ceb1d5a7593e4d87ae5: object corrupt or missing

What OS X are you running?  I started a loop

  while : ; do ./t1450-fsck.sh || break; done

and it hasn't failed yet.  It is

  $ uname -a
  Darwin mackeller.inf.ethz.ch 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr  9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64

> I reverted the last change in fsck.c (Use the streaming interface), but that doesn't help
>
> Looking into the trash directory and looking at the files, we can see that the .git/index is different
> between Linux and Mac OS X.
>
> Is there a good way to debug the index file?

You can run 'git ls-files --debug' which should give you all the data in
the index, and then perhaps run diff over that to determine the
differences...

-- 
Thomas Rast
trast@{inf,student}.ethz.ch