GNU bug report logs - #26952
25.2; repeated buffer insertion (e.g. yank-rectangle) consumes excessive memory (4GB+ for 90MB of text)

Previous Next

Package: emacs;

Reported by: Francesco Potortì <pot <at> gnu.org>

Date: Tue, 16 May 2017 14:55:01 UTC

Severity: important

Merged with 27498, 31092, 38629

Found in versions 25.1, 25.2

Fixed in version 26.1

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #27 received at 26952 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: npostavs <at> users.sourceforge.net, Paul Eggert <eggert <at> cs.ucla.edu>
Cc: pot <at> gnu.org, 26952 <at> debbugs.gnu.org
Subject: Re: bug#26952: 25.1;
 loops eating all memory while yanking big rectangle
Date: Sun, 21 May 2017 18:28:12 +0300
> From: npostavs <at> users.sourceforge.net
> Cc: 26952 <at> debbugs.gnu.org,  pot <at> gnu.org
> Date: Sat, 20 May 2017 15:27:39 -0400
> 
> > So you are saying that inserting 90MB worth of text into a buffer
> > makes Emacs 25.2 run out of 1GB of memory, due to inefficiencies of
> > the malloc implementation?
> 
> When it's inserted in small chunks, yes, I think so.  What seems to
> happen is that the buffer gap keeps getting realloc'd to be slightly
> bigger, and the deallocated chunks don't get reused.
> 
> > (Here on Windows it produces a 230MB Emacs
> > session, but the Windows build uses the moral equivalent of mmap for
> > allocating buffer text.)
> 
> Neither master nor emacs-25 are using mmap (according to configure
> output), but I guess the "hybrid" or relocating allocaters are smart
> enough to handle this case.

I cannot see why.  AFAIK, the only difference between using the hybrid
allocation and not using it is before Emacs is dumped; after that both
use the same system malloc.  So if the hybrid malloc fixed this, the
problem is somehow related to the memory allocation before dumping.
Maybe reallocating a gap that was allocated before dumping somehow
exposes a bug?

Paul, is it feasible to back-port the hybrid allocation to the
emacs-25 branch?  This sounds like a nasty bug, so if we can safely
fix it, I think we ought to release Emacs 25.3 with just this issue
fixed.  WDYT?




This bug report was last modified 5 years and 137 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.