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