[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

From: Paul Sander
Subject: Re: Unable to commit 150MB text design file (out of memory)
Date: Wed, 12 Nov 2008 16:05:47 -0800

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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]