threads / discuss / 22303

Error when cloning gc'ed repository

Subject: Error when cloning gc'ed repository

## tl;dr

3 messages between Jan 20, 2010 and May 25, 2010.

replies: 2people: 2as markdown or json

Andre Loker· Jan 20, 2010, 10:45 UTC · lore
Hi,
First of all, my setup:

Server: Win 2008 cygwin git 1.6.6, built from source gitosis

Client: Win 7 cygwin git 1.6.6, built from source

The server is hosting several repositories, they all work fine, except for one (at least I've experienced the following error with only one of the repos). For this repository, cloning fails if the repository has been repacked (or gc'ed) on the client side:

$ git clone git@theserver:the/repository.git Initialized empty Git repository in /e/Temp/dr/.git/ remote: Counting objects: 1396, done. remote: Compressing objects: 100% (654/654), done. fatal: The remote end hung up unexpectedly fatal: early EOFs: 47% (657/1396) fatal: index-pack failed

However, if I unpack the objects completely and delete the pack file, I can clone the repository without any problem:

$ git clone git@theserver:the/repository.git Initialized empty Git repository in /e/Temp/dr/.git/ remote: Counting objects: 1396, done. remote: Compressing objects: 100% (1293/1293), done. remote: Total 1396 (delta 639), reused 0 (delta 0) Receiving objects: 100% (1396/1396), 4.99 MiB | 1.70 MiB/s, done. Resolving deltas: 100% (639/639), done.

fsck shows no error

Does this problem sound familiar to anyone? May it's a network issue, but other repositories (also larger ones) work flawlessly even when in a packed state. Any help is appreciated!

Kind regards, Andre Loker

P.S.:

Here's a trace: $ GIT_TRACE=1 git clone git@theserver:the/repository.git trace: built-in: git 'clone' 'git@theserver:the/repository.git' Initialized empty Git repository in /e/Temp/dr/.git/ trace: run_command: 'ssh' 'git@theserver' 'git-upload-pack '\''the/repository.git'\''' trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 5208 on Phobos' trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 5208 on Phobos' remote: Counting objects: 1396, done. remote: Compressing objects: 19% (125/654) race: exec: 'git-index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 5208 on Phobos' remote: Compressing objects: 21% (138/654) remote: Compressing objects: 100% (654/654), done. fatal: The remote end hung up unexpectedly fatal: early EOFs: 88% (1229/1396), 4.76 MiB | 9.23 MiB/s fatal: index-pack failed

And here's a trace of a successful run:

$ GIT_TRACE=1 git clone git@theserver:the/repository.git trace: built-in: git 'clone' 'git@theserver:the/repository.git' Initialized empty Git repository in /e/Temp/dr/.git/ trace: run_command: 'ssh' 'git@theserver' 'git-upload-pack '\''the/repository.git'\''' trace: run_command: 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 4624 on Phobos' trace: exec: 'git' 'index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 4624 on Phobos' trace: exec: 'git-index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 4624 on Phobos' trace: run_command: 'git-index-pack' '--stdin' '-v' '--fix-thin' '--keep=fetch-pack 4624 on Phobos' remote: Counting objects: 1396, done. remote: Compressing objects: 100% (1293/1293), done. remote: Total 1396 (delta 639), reused 0 (delta 0) Receiving objects: 100% (1396/1396), 4.99 MiB | 1.68 MiB/s, done. Resolving deltas: 100% (639/639), done.

Andre Loker· Jan 21, 2010, 16:02 UTC · re: Andre Loker · lore

Re: Error when cloning gc'ed repository

Andre Loker wrote:
Show 9 quoted lines
> Hi,
> 
> $ git clone git@theserver:the/repository.git
> Initialized empty Git repository in /e/Temp/dr/.git/
> remote: Counting objects: 1396, done.
> remote: Compressing objects: 100% (654/654), done.
> fatal: The remote end hung up unexpectedly
> fatal: early EOFs:  47% (657/1396)
> fatal: index-pack failed

To answer the question myself: it seems that it is a problem with openssh under cygwin 1.7.1. I found a similar problem here:

http://www.mail-archive.com/cygwin@cygwin.com/msg103749.html

The proposed workaround is to use plink instead of openssh. I tried it and so far it seems to work. It's not as nice as openssh, but at least it's a workaround until the issue is solved.

Kind Regards, Andre

Gabriel Burca· May 25, 2010, 21:15 UTC · re: Andre Loker · lore

Re: Error when cloning gc'ed repository

Andre Loker <loker <at> gmx.de> writes:
Show 20 quoted lines
> 
> Andre Loker wrote:
> > Hi,
> > 
> > $ git clone git <at> theserver:the/repository.git
> > Initialized empty Git repository in /e/Temp/dr/.git/
> > remote: Counting objects: 1396, done.
> > remote: Compressing objects: 100% (654/654), done.
> > fatal: The remote end hung up unexpectedly
> > fatal: early EOFs:  47% (657/1396)
> > fatal: index-pack failed
> 
> To answer the question myself: it seems that it is a problem with 
> openssh under cygwin 1.7.1. I found a similar problem here:
> 
> http://www.mail-archive.com/cygwin <at> cygwin.com/msg103749.html
> 
> The proposed workaround is to use plink instead of openssh. I tried it 
> and so far it seems to work. It's not as nice as openssh, but at least 
> it's a workaround until the issue is solved.

I downgraded just the openssh package in cygwin from 5.5p1-1 to 5.4p1-1 and the problem went away. This was easier than switching to putty/plink.

Before the downgrade my rate of failure was 100%. I was doing a "git remote update origin", not a clone, but the symptoms were the same as Andre's.

-- 
Gabriel Burca

← back to recent threads