Hi, On Wed, 23 Jul 2008, 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). Just a guess: -- snipsnap -- [PATCH] index-pack: set base_data's data member to NULL after freeing it Signed-off-by: Johannes Schindelin <Johannes.Schindelin@xxxxxx> --- 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; } }