git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Corruption in the repository

From
Sylvestre Ledru <sylvestre.ledru@scilab.org>
Date
Dec 14, 2010, 14:37 UTC
Message-ID
<1292337456.25237.29023.camel@korcula.inria.fr>
In-Reply-To
<AANLkTinoD2qn7ZqMtGbSjJgkVUNE--fOsrSKzqTLCLpP@mail.gmail.com>
Le mardi 14 décembre 2010 à 12:59 +0100, Christian Couder a écrit :
Show 75 quoted lines
> On Tue, Dec 14, 2010 at 10:47 AM, Sylvestre Ledru
> <sylvestre.ledru@scilab.org> wrote:
> > Le mardi 14 décembre 2010 à 10:29 +0100, Christian Couder a écrit :
> >> On Mon, Dec 13, 2010 at 7:11 PM, Sylvestre Ledru
> >> <sylvestre.ledru@scilab.org> wrote:
> >> > Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
> >> >> On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
> >> >> <sylvestre.ledru@scilab.org> wrote:
> >> >> >
> >> >> > Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
> >> >> >> Hi,
> >> >> >>
> >> >> >> On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
> >> >> >> <sylvestre.ledru@scilab.org> wrote:
> >> >> >> > Hello guys,
> >> >> >> >
> >> >> >> > I have a small problem with a git repository and I haven't find a way to
> >> >> >> > fix my problem.
> >> >> >> > I am using git with gerrit [1] as frontend (even if I don't think it is
> >> >> >> > related here).
> >> >> >> > For an unknown reason, the repository just became corrupted.
> >> >> >> >
> >> >> >> > When I try to clone the repository straight with the file system, the
> >> >> >> > following error is displayed:
> >> >> >> > error: refs/changes/98/398/1 does not point to a valid object!
> >> >> >> > error: refs/changes/98/398/2 does not point to a valid object!
> >> >> >> > fatal: object cff52c24fba28408e7d021a8f35a717bef31521d is corrupted
> >> >> >> > fatal: The remote end hung up unexpectedly
> >> >> >> >
> >> >> >> > git-prune & git-fsck both fail.
> >> >> >> >
> >> >> >> > Does anyone know how to repair this error ?
> >> >> >>
> >> >> >> Did you try what the FAQ suggests:
> >> >> >>
> >> >> >> https://git.wiki.kernel.org/index.php/GitFaq#How_to_fix_a_broken_repository.3F
> >> >> > Yes. It shows an other error and it doesn't match the error described on
> >> >> > this URL [1].
> >> >> >
> >> >> > I get the following:
> >> >> > error: refs/tags/5.3.0-beta-4 does not point to a valid object!
> >> >> > fatal: object 555a7c359b2e589ec10822d9b56cdfeee0105fe0 is corrupted
> >> >>
> >> >> The FAQ says that you should try to replace any broken and/or missing
> >> >> objects, so you should try to do that with object
> >> >> 555a7c359b2e589ec10822d9b56cdfeee0105fe0 (as described in the FAQ)
> >> >> even if the error message is not exactly the same.
> >> > Well, after clean the error about the tags, it does not provide any
> >> > interesting feedbacks like in the FAQ.
> >> >
> >> > Just some information [1] about some dangling commits (probably commit
> >> > under review in gerrit). Nothing valuable and the problem still occurs
> >> > on the client side.
> >>
> >> So you say that "git fsck --full" gives only dangling commits on the
> >> server, and you still get messages like "fatal: object XXXXX is
> >> corrupted" on the client when you try to clone with gerrit?
> > Not exactly, when I try to clone it through gerrit, it is working:
> > git clone ssh://sylvestre.ledru@git.scilab.org:29418/scilab
> > A bare clone works also.
> >
> > It is failing when I am using git-daemon (git clone
> > git://git.scilab.org/scilab) or a straight clone (git
> > clone /home/git/repositories/repo.git).
> 
> This is very strange, are you sure you cannot use the resulting repo
> when it "fails"?
> What happens when you run "git fsck --full" on the resulting repos?
> 
> > Both with the same error:
> > error: refs/changes/98/398/1 does not point to a valid object!
> > error: refs/changes/98/398/2 does not point to a valid object!
> 
> Did you try to see which objects these refs are pointing to, and if
> they are on the server?

In fact, we have some progress on the issue. It looks like, at some point, two tags have been badly created [1].

Here is what Bruno did to fix the issue: 1 - Add valid references I put some valid commit id in refs/changes/98/398/{1,2}

2 - Find out what the corrupted object was for $> git cat-file -t cff52c24fba28408e7d021a8f35a717bef31521d tag $> cat refs/tags/5.3.0-beta-4 cff52c24fba28408e7d021a8f35a717bef31521d $> git tag -d 5.3.0-beta-4

3 - Server complains : fatal: git upload-pack: unable to fork git-pack-objects $> git gc (on the server) Solved this problem.

Hope this helps for others, Sylvestre

[1] Looks at my mail archive, the guy who created the tag did it this way: [$SHELL] cd /home/git/repositories/scilab.git [$SHELL] git tag -d 5.3.0-beta-4 [$SHELL] git tag -m "Scilab 5.3.0 Beta 4 Version" 5.3.0-beta-4 96b0b8e6d621a7ea7c88d63e10d57908689632ed

Previous: Christian CouderNext: Jonathan Nieder
Message 11 of 12 in “Corruption in the repository”
  1. Sylvestre LedruDec 13, 2010
  2. Christian CouderDec 13, 2010
  3. Sylvestre LedruDec 13, 2010
  4. Christian CouderDec 13, 2010
  5. Sylvestre LedruDec 13, 2010
  6. Christian CouderDec 14, 2010
  7. Jonathan NiederDec 14, 2010
  8. Sylvestre LedruDec 14, 2010
  9. Sylvestre LedruDec 14, 2010
  10. Christian CouderDec 14, 2010
  11. Sylvestre LedruDec 14, 2010
  12. Jonathan NiederDec 14, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.