On Tue, Jul 22, 2008 at 11:17:45PM +0000, Pierre Habouzit wrote: > Hi, here is a manual painful down-secting (opposed to a bisect ;P) I > did, since git in next cannot fetch on a regular basis for me. The > culprit seems to be commit 92392b4: > > ┌─(1:11)──<~/dev/scm/git 92392b4...>── > └[artemis] git fetch > remote: Counting objects: 461, done. > remote: Compressing objects: 100% (141/141), done. > remote: Total 263 (delta 227), reused 155 (delta 121) > Receiving objects: 100% (263/263), 95.55 KiB, done. > fatal: Out of memory, malloc failed > fatal: index-pack failed > [2] 16674 abort (core dumped) git fetch > > ┌─(1:12)──<~/dev/scm/git 92392b4...>── > └[artemis] git checkout -m HEAD~1; make git-index-pack > Previous HEAD position was 92392b4... index-pack: Honor core.deltaBaseCacheLimit when resolving deltas > HEAD is now at 03993e1... index-pack: Track the object_entry that creates each base_data > GIT_VERSION = 1.5.6.3.3.g03993 > CC index-pack.o > LINK git-index-pack > > ┌─(1:12)──<~/dev/scm/git 03993e1...>── > └[artemis] git fetch > remote: Counting objects: 461, done. > remote: Compressing objects: 100% (141/141), done. > remote: Total 263 (delta 227), reused 155 (delta 121) > Receiving objects: 100% (263/263), 95.55 KiB, done. > Resolving deltas: 100% (227/227), completed with 153 local objects. > From git://git.kernel.org/pub/scm/git/git > 5ba2c22..0868a30 html -> origin/html > 2857e17..abeeabe man -> origin/man > 93310a4..95f8ebb master -> origin/master > 559998f..e8bf351 next -> origin/next > > You can see the commit sha's in the prompt. 03993e1 is fine, 92392b4 is > broken, I've absolutely no clue about what happens. > > All I can say is that at some point in get_data_from_pack, obj[1].idx > points to something that is *not* a sha so it's probably corrupted. > (from index-pack.c). Though reading the code, we trust c->data NULL-iness to mean we have no data, and there is one code path that fails to reset it. The problem is I'm not able to reproduce the bug, because I foolishly didn't backuped the git repository that exhibited the failure, so I cannot know if that can be the problem: --- snip --- From c3749f7bc50c642c5d437b2746d4ba589b7d9739 Mon Sep 17 00:00:00 2001 From: Pierre Habouzit <madcoder@xxxxxxxxxx> Date: Wed, 23 Jul 2008 01:35:11 +0200 Subject: [PATCH] index-pack: missing pointer reset to NULL. Signed-off-by: Pierre Habouzit <madcoder@xxxxxxxxxx> --- index-pack.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/index-pack.c b/index-pack.c index ac20a46..19c39e5 100644 --- a/index-pack.c +++ b/index-pack.c @@ -257,6 +257,7 @@ static void unlink_base_data(struct base_data *c) base_cache = NULL; if (c->data) { free(c->data); + c->data = NULL; base_cache_used -= c->size; } } -- 1.6.0.rc0.153.ge8bf3.dirty
Attachment:
pgp9HpFHzIlhI.pgp
Description: PGP signature