Remote corruption issue, linked to thin pack code?
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Aug 25, 2010, 20:53 UTC
- Message-ID
- <201008252253.26521.trast@student.ethz.ch>
Hi *,
This one sounds fairly similar to
http://thread.gmane.org/gmane.comp.version-control.git/123244/
which was never resolved.
Jonas reported repo corruption on IRC along the lines of
$ make gitpush
cd dist && git push ssh://<user>@eloxoph.com/repos/mainrepo/bla.git master
- W e l c o m e t o E L O X O P H -
friendly landlord<user>@eloxoph.com's password: Counting objects: 201, done. Delta compression using up to 2 threads. Compressing objects: 100% (132/132), done. Writing objects: 100% (133/133), 1.01 MiB, done. Total 133 (delta 118), reused 0 (delta 0) fatal: pack has 114 unresolved deltas error: unpack failed: index-pack abnormal exit To ssh://<user>@eloxoph.com/repos/mainrepo/bla.git ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'ssh://<user>@eloxoph.com/repos/mainrepo/bla.git' make: *** [gitpush] Error 1
The respective repos show no errors with git-fsck. Jonas kindly provides a download link for both:
http://eloxoph.com/localrepo.zip http://eloxoph.com/remoterepo.zip
Versions are 1.7.2.1 locally and 1.5.4.3 remotely.
Beware, there are hooks in both. Disabling them, however, only changes the error slightly:
[...] Total 133 (delta 118), reused 0 (delta 0) fatal: pack has 114 unresolved deltas error: unpack failed: index-pack abnormal exit To ssh://mainrepo@eloxoph.com/repos/mainrepo/bla.git ! [remote rejected] master -> master (n/a (unpacker error)) error: failed to push some refs to 'ssh://mainrepo@eloxoph.com/repos/mainrepo/bla.git' make: *** [gitpush] Error 1
What's even stranger is that fetching from the repo is also not possible:
fatal: git-upload-pack: cannot find object e28ae6b61c384732c506544626c5083557dd2d75: fatal: The remote end hung up unexpectedly
despite the object being there.
What's also strange is that while there is a temporary pack inside objects/, I get
$ git index-pack --stdin < objects/tmp_pack_oEUkIc fatal: pack has 114 unresolved deltas $ git index-pack --fix-thin -v --stdin < objects/tmp_pack_oEUkIc Receiving objects: 100% (133/133), 1.01 MiB, done. Resolving deltas: 100% (118/118), completed with 63 local objects. pack 061120577b0a1fec7ba636d6e3162f95f83543aa
So it seems the remote side got a thin pack and can't cope. But a4503a1 (Make --no-thin the default in git-push to save server resources, 2007-09-09), merged way back in 1.5.3.2, claims to enable --no-thin all the time. So how did a thin pack get there?
Any ideas?
--
Thomas Rast
trast@{inf,student}.ethz.ch