Subject: Re: out of memory problem

From: Andreas Ericsson <[email-masked]>
Date: Mon, 22 Sep 2008 09:32:07 +0200

Guo Tang wrote:
> Gentlemen,
> 
> I try to run "git gc" on linux kernel tree. The virtual memory keeps 
> going up until over 3GB, then crash. 
> Tried twice with the v1.6.0.2, same result.
> Then I used the git coming with FC9 (v1.5.5.1), the peak virutal memory 
> usage is about 1.5GB. "git gc" finished without any trouble. 
> 
> Could there be a memory leak in v1.6.0.2?
> 

There could be, but most likely it's commit
38bd64979a2a3ffa178af801c6a62e6fcd658274 (Enable threaded delta
search on BSD and Linux). Do you have multiple cpu's in the
computer where 'git gc' was running? If so, and if you've set
pack.threads = 0, or --threads=0 it will autodetect the number
of CPU's you have and then saturate all of them with work. Each
thread will however consume memory close to that of a single
process running the repack, so for large repositories you might
want to set pack.threads = 1 in such large repositories.

It's a shame you didn't save the unpacked repository, or this could
have been properly debugged. While it's possible there is a memory
leak, it's a dismal project trying to locate it by staring at the
code, and the time it takes to repack huge repositories with memory
intensive parameters is sort of prohibitive for finding the possible
leak by bisection.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231