git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Gary Oberbrunner <garyo@oberbrunner.com>
To: Derrick Stolee <stolee@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Fwd: Possible git bug in commit-graph: "invalid commit position"
Date: Tue, 4 Feb 2020 17:33:42 -0500	[thread overview]
Message-ID: <CAFChFyhZYm88cCo6X_XikT=HRQG9Pp0vyveXmAuComFUJYjRcA@mail.gmail.com> (raw)
In-Reply-To: <d4313777-ce8c-0b64-997e-17cb719c9ab8@gmail.com>

Sorry for the long reply delay; the bug went away and only just showed
up again. Here's the info you requested.
I'm now running git 2.25.0.

Showing the bug:
% git show --patch df2f
fatal: invalid commit position. commit-graph is likely corrupt
commit df2f311c78b87d16509f352c66d7309957740711 (origin/feature/renderer)
Author: [redacted]
Date: Mon Jan 20 12:37:01 2020 -0500

WIP: add outline of back-end render web service

Submodule packages/ngl f713ed5..7de8821:
%

Run "git commit-graph verify": doesn't detect any problem.
% git commit-graph verify
Verifying commits in commit graph: 100% (1/1), done.
Verifying commits in commit graph: 100% (2/2), done.
Verifying commits in commit graph: 100% (10/10), done.
Verifying commits in commit graph: 100% (14/14), done.
Verifying commits in commit graph: 100% (71/71), done.
Verifying commits in commit graph: 100% (478/478), done

You asked me to delete .git/objects/info/commit-graph -- I don't have
such a file, but  I do have a subdir "commit-graphs":
% ls .git/objects/info/commit-graphs/
commit-graph-chain graph-e96da2872d5c5fc1c4e399f99b7800d08fcdd273.graph
graph-4f5807bbdcba22f8fdc081c91205c40d40e99d38.graph
graph-e9f543a1389f8f5d6e91c09caa6658a1905d00fe.graph
graph-79f0f3bff07f7e7dda9d2438a30ef6483a2b531f.graph tmp_graph_GHI48b
graph-83ce268fda98e26938ce702bb261e1719ff816ba.graph tmp_graph_Ypgl2f
graph-93a966dc8be3040189367f047f5111e9f29c2d6c.graph

After removing that subdir and running "git commit-graph write", I
*do* have a .git/objects/info/commit-graph file.

The bug is still present though! However, I do have a git submodule
with its own .git/objects/info/commit-graphs; let's look into that.
In the git submodule dir, "git commit-graph verify" succeeds with no
errors (just like the parent).
Deleted the .git/objects/info/commit-graphs subdir, regenerated with
"git commit-graph write".
Retest original problem:
- Now the problem is fixed!

So long story short: the corrupted git commit-graph was in a
submodule. It does appear that "git commit-graph verify" failed to
detect the corruption. Removing and regenerating fixes it.

I do have the old git submodule's commit-graphs data in case it's
useful. Let me know and I can send it along.


On Mon, Jan 20, 2020 at 7:37 PM Derrick Stolee <stolee@gmail.com> wrote:
>
> On 1/20/2020 12:32 PM, Gary Oberbrunner wrote:
> > I'm running git 2.24.1 on Linux/WSL, and sometimes git fails with this error:
> > ```
> > % git diff --cached
> > fatal: invalid commit position. commit-graph is likely corrupt
> > ```
> > Usually that error goes away after I do a few more git operations, but
> > I haven't been able to discern a pattern yet. It's not always with
> > "diff", can be any git command as far as I can tell.
> > Perhaps it started after I enabled the commit-graph stuff:
> > ```
> > [core]
> >         editor = emacsclient -c -a \"\"
> >         preloadindex = true
> >         fscache = true
> >         autocrlf = false
> >         commitGraph = true
> >         writeCommitGraph = true
> > ```
> > In fact, when I turn off `commitGraph`, the error goes away. But as I
> > say, sometimes it goes away of its own accord.
>
> Disabling the featuere will definitely remove the error. Some commands may
> also just not "visit" the corrupt commit.
>
> > Googling turns up almost nothing on this error. I have no idea if I've
> > done something wrong to corrupt the commit graph, or if it's a git
> > bug. If there's anything I can do to help debug it, I'd be happy to --
> > just let me know.
>
> Please run "git commit-graph verify" to see if that catches the
> corruption. If not, then the verify feature is broken.
>
> Then, you can delete your .git/objects/info/commit-graph file
> and rebuild it with "git commit-graph write". (If you have
> fetch.writeCommitGraph enabled, then you may need to instead
> delete the .git/objects/info/commit-graphs directory.) If that
> process does not fix the problem, then there is definitely a bug
> in the feature. At the moment, it may just be a flipped bit in
> the file.
>
> Thanks,
> -Stolee



-- 
Gary

  reply	other threads:[~2020-02-04 22:33 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAFChFygiaMsUJC5Kfpnk26DLWbY0gPdNJpZ_gLMf4utZ6_oZxA@mail.gmail.com>
2020-01-20 17:32 ` Fwd: Possible git bug in commit-graph: "invalid commit position" Gary Oberbrunner
2020-01-21  0:37   ` Derrick Stolee
2020-02-04 22:33     ` Gary Oberbrunner [this message]
2020-05-15 12:03       ` Alex Riesen
2020-06-21 20:45         ` Michael Forney
2020-06-22 13:45           ` Derrick Stolee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFChFyhZYm88cCo6X_XikT=HRQG9Pp0vyveXmAuComFUJYjRcA@mail.gmail.com' \
    --to=garyo@oberbrunner.com \
    --cc=git@vger.kernel.org \
    --cc=stolee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).