Re: Corruption in the repository

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Le mardi 14 dÃcembre 2010 Ã 12:59 +0100, Christian Couder a Ãcrit :
> On Tue, Dec 14, 2010 at 10:47 AM, Sylvestre Ledru
> <sylvestre.ledru@xxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxx> 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@xxxxxxxxxxxxxx: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



--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]