Thread (1 message) 1 message, 1 author, 2016-06-15

[BUG?] remote-http: interrupted fetch leaves bad index behind

From: Jonathan Nieder <hidden>
Date: 2016-06-15 22:50:30
Subsystem: the rest · Maintainer: Linus Torvalds

Hi gitsters,

Török Edwin wrote[1]:
If I run 'git remote update' when the remote is an http URL, and then
I Ctrl-C in the middle of a pack download, I get the .idx and .pack.temp.

Next time when I run 'git remote update' it tells me it can't find some refs:
error: Unable to find 72128861501dc742d33e88b473482e17f6672d4c under http://git.clamav.net/clamav-devel.git
Cannot obtain needed object 72128861501dc742d33e88b473482e17f6672d4c
error: Fetch failed.
Steps to reproduce:

 1. Disable smart HTTP[2].
 2.
	git init reproduce
	cd reproduce
	git remote add clam http://git.clamav.net/clamav-devel.git
 3. git fetch clam
    Wait a few seconds (there will be no output).  Hit ^C.

$ ls .git/objects/pack/
pack-98c82c9d2da21d2efddc4544d68332235795df19.idx.temp.temp
$ git fetch clam
error: wrong index v2 file size in .git/objects/pack/pack-98c82c9d2da21d2efddc4544d68332235795df19.idx.temp
error: Unable to find fe96c524670f23f73008c0e6b4001c096e4f9532 under http://git.clamav.net/clamav-devel.git
Cannot obtain needed object fe96c524670f23f73008c0e6b4001c096e4f9532
error: Fetch failed.

Ideas?
Jonathan

[1] http://bugs.debian.org/602528
[2]
diff --git a/remote-curl.c b/remote-curl.c
index 04d4813..b0ad1aa 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -625,10 +625,12 @@ static int fetch_git(struct discovery *heads,
 
 static int fetch(int nr_heads, struct ref **to_fetch)
 {
+#if 0
 	struct discovery *d = discover_refs("git-upload-pack");
 	if (d->proto_git)
 		return fetch_git(d, nr_heads, to_fetch);
 	else
+#endif
 		return fetch_dumb(nr_heads, to_fetch);
 }
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help