Re: Unable to commit 150MB text design file (out of memory)

Paul Sander <[email protected]>
Newsgroups gmane.comp.version-control.cvs.general
Message-ID <[email protected]>
Something that wasn't mentioned is that CVS reads the entire RCS file  
into memory before processing it, adding its size to the size of the  
cvs binary's swap space.  Depending on the system, it will either mmap  
it into swap space directly or it will allocate a large buffer and use  
fread to load the entire file into it.  So if the size of the RCS  
file, plus the size of the new revision, plus the sum of the sizes of  
swap space on your system exceed the size of your swap partition, then  
you'll see an error like this.

So the new revision is 150MB in size.  It would not take many  
revisions of this size to overflow your swap space.  How big is your  
RCS file?

Using versions of CVS that are old enough to use actual RCS binaries  
might be an option if you're sufficiently desperate.  RCS can be  
configured to use external memory methods to access very large files,  
and these methods apparently were not ported to CVS when it absorbed  
RCS.  There's a heavy price to pay in terms of performance using this  
method, however, and the loss of many features and bug fixes:  We're  
talking CVS 1.4 here, so you have to be REALLY hard up to consider this.

On Nov 12, 2008, at 1:36 PM, Bulgrien, Kevin wrote:

>> If you look that error message up in the CVS manual, you'll see the
>> following -- note particularly the last two sentences:
>>
>> 	There is insufficient (virtual) memory available to continue. In
>> 	client/server mode, the problem is almost certainly on the
>> 	server rather than the client; see Server requirements for
>> 	memory estimates. Many systems have limits on the amount of
>> 	virtual memory that a single process can use, so a process can
>> 	run out of virtual memory long before the system itself has run
>> 	out. The method of increasing the per-process limits varies
>> 	depending on the operating system.
>> -- 
>> Larry Jones
>
> Oh my... an RTFM.  And I even did look it up but for some reason  
> missed
> the distinction between system virtual memory and that available to a
> process.  Hmm.  Wow.  Sounds like a research project, but thanks for
> pointing out my oversight.  I certainly need to determine for sure
> whether it is the client or the server that is running out of memory.
>
> ---
> Kevin R. Bulgrien
> Design and Development Engineer
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.