Corruption in the repository

12 messages, 3 authors, 2016-06-15 · open the first message on its own page

Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:14

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 ?

Thanks
Sylvestre

[1] http://code.google.com/p/gerrit/

Re: Corruption in the repository

From: Christian Couder <hidden>
Date: 2016-06-15 22:50:14

Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] 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

?

Regards,
Christian.

Re: Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:14

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
[off-list ref] wrote:
quoted
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

Sylvestre

[1]
$ git fsck --full
broken link from    tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8
             to    blob 4b9458b3786228369c63936db65827de3cc06200
missing blob 4b9458b3786228369c63936db65827de3cc06200

Re: Corruption in the repository

From: Christian Couder <hidden>
Date: 2016-06-15 22:50:14

On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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.

Regards,
Christian.

Re: Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:14

Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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.

Sylvestre
[1] http://paste.debian.net/102297/

Re: Corruption in the repository

From: Christian Couder <hidden>
Date: 2016-06-15 22:50:14

On Mon, Dec 13, 2010 at 7:11 PM, Sylvestre Ledru
[off-list ref] wrote:
Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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? Did you
try to clone using git? Please try it and give us the exact command
and result that you get.

By the way could you tell us which version of git and gerrit you are using?
When I try "git grep corrupted" on the git and gerrit sources I don't
find anything relevant.

Regards,
Christian.

Re: Corruption in the repository

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:14

Christian Couder wrote:
When I try "git grep corrupted" on the git and gerrit sources I don't
find anything relevant.
The error message was changed by b6c4cec (read_sha1_file(): report
correct name of packfile with a corrupt object, 2010-10-28) and
especially v1.7.3-rc0~73^2 (sha1_file: Show the the type and path to
corrupt objects, 2010-06-10).

Random guess: maybe a corrupt but redundant packed object was removed
in the course of investigation?  Sylvestre, are you still able to get
errors from the repository?  If you still have a copy of the original
corrupt version of the repository, I would be interested (to learn
something about how it got damaged in the first place).

Re: Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:14

Le mardi 14 décembre 2010 à 10:29 +0100, Christian Couder a écrit :
On Mon, Dec 13, 2010 at 7:11 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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).
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!

By the way could you tell us which version of git and gerrit you are using?
git 1.7.2.3 & gerrit 2.1.5

Sylvestre

Re: Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:14

Le mardi 14 décembre 2010 à 03:46 -0600, Jonathan Nieder a écrit :
Christian Couder wrote:
quoted
When I try "git grep corrupted" on the git and gerrit sources I don't
find anything relevant.
The error message was changed by b6c4cec (read_sha1_file(): report
correct name of packfile with a corrupt object, 2010-10-28) and
especially v1.7.3-rc0~73^2 (sha1_file: Show the the type and path to
corrupt objects, 2010-06-10).

Random guess: maybe a corrupt but redundant packed object was removed
in the course of investigation?  
We haven't tried to delete files. We have been careful (at least, try
to)
Sylvestre, are you still able to get errors from the repository?  
Sure
If you still have a copy of the original
corrupt version of the repository, I would be interested (to learn
something about how it got damaged in the first place).
Me too. 
I send you the URL in private (it is 344M).

Sylvestre

Re: Corruption in the repository

From: Christian Couder <hidden>
Date: 2016-06-15 22:50:14

On Tue, Dec 14, 2010 at 10:47 AM, Sylvestre Ledru
[off-list ref] wrote:
Le mardi 14 décembre 2010 à 10:29 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 7:11 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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?

Regards,
Christian.

Re: Corruption in the repository

From: Sylvestre Ledru <hidden>
Date: 2016-06-15 22:50:15

Le mardi 14 décembre 2010 à 12:59 +0100, Christian Couder a écrit :
On Tue, Dec 14, 2010 at 10:47 AM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le mardi 14 décembre 2010 à 10:29 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 7:11 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 18:02 +0100, Christian Couder a écrit :
quoted
On Mon, Dec 13, 2010 at 5:47 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
Le lundi 13 décembre 2010 à 17:34 +0100, Christian Couder a écrit :
quoted
Hi,

On Mon, Dec 13, 2010 at 4:59 PM, Sylvestre Ledru
[off-list ref] wrote:
quoted
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?
quoted
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

Re: Corruption in the repository

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:15

Sylvestre Ledru wrote:
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
Ah, should have thought of this sooner.  There doesn't seem to be
corruption involved after all.
Does anyone know how to repair this error ?
Use git from the "master" branch to consolidate pack files:

	~/src/git/bin-wrappers/git repack -a -d

Details are in f2e872aa5 (Work around EMFILE when there are too many
pack files, 2010-11-01), which will likely be part of git 1.7.4.
Thanks for reporting and sorry for the trouble.

Jonathan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help