From: Andreas Schwab <schwab@suse.de>
To: git@vger.kernel.org
Subject: git gc complains about "unable to read $oid" but git fsck finds no problems
Date: Thu, 01 Jun 2023 12:00:18 +0200 [thread overview]
Message-ID: <mvmfs7ba4el.fsf@suse.de> (raw)
$ git count-objects -v -H
count: 2177
size: 17.75 MiB
in-pack: 878690
packs: 46
size-pack: 279.84 MiB
prune-packable: 0
garbage: 0
size-garbage: 0 bytes
$ git gc
Enumerating objects: 866036, done.
Counting objects: 100% (866036/866036), done.
Delta compression using up to 8 threads
Compressing objects: 100% (144924/144924), done.
fatal: unable to read e8524e0483c8e65746888368f77f83d7a955ea87
fatal: failed to run repack
How can I find out where the bad object is referenced to be able to get
rid of it? It is not part of the regular history, a re-clone of the
remote repository does not fetch it. git fsck --full --cache prints a
lot of dangling commits, but still does not complain. The error happens
about half way through writing out the new pack.
The repository is more than 10 years old and in regular use all that
time, including a lot of rebasing. I have looked through all of the
reflogs, but couldn't find the object there either. git prune
--expire=now and git reflog expire --all --stale-fix
--expire-unreachable=all didn't help.
Then I used the fresh clone to copy over all heads I know about, like
recreating the branches and replace refs, fetching all reflog entries.
That did not report any problems and git gc does not complain, but it
has about 14800 objects less.
Any ideas?
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
next reply other threads:[~2023-06-01 10:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-01 10:00 Andreas Schwab [this message]
2023-06-01 10:07 ` git gc complains about "unable to read $oid" but git fsck finds no problems Junio C Hamano
2023-06-01 10:38 ` Andreas Schwab
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=mvmfs7ba4el.fsf@suse.de \
--to=schwab@suse.de \
--cc=git@vger.kernel.org \
/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.
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 NNTP newsgroup(s).