GNU bug report logs - #79200
31.0.50; Duplicated elements for '#<marker at' in buffer-undo-list

Previous Next

Package: emacs;

Reported by: Óscar Fuentes <oscarfv <at> eclipso.eu>

Date: Fri, 8 Aug 2025 16:45:03 UTC

Severity: normal

Found in version 31.0.50

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Óscar Fuentes <oscarfv <at> eclipso.eu>
Cc: 79200 <at> debbugs.gnu.org
Subject: bug#79200: 31.0.50; Duplicated elements for '#<marker at' in buffer-undo-list
Date: Sat, 09 Aug 2025 12:18:03 +0300
> Date: Fri, 08 Aug 2025 18:43:51 +0200
> From:  Óscar Fuentes via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
> 
> emacs -Q
> 
> write in *scratch* some lines with random words:
> 
> arins
> arseina
> aierni
> 
> iosrn nioni
> ionugfw
> 
> sronuf
> 
> Now undo a few of those lines (C-_), move the cursor and C-_ again to
> redo.
> 
> C-h v buffer-undo-list
> 
> shows a content like this:
> 
> (nil (#("sreint" 0 6 (fontified t)) . 164)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6)
>      (#<marker at 164 in *scratch*> . -6) nil (#("
> "
> 						 0 1 (fontified t))
> 					       . 170)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker in no buffer> . -1) nil
>      (#("aor" 0 3 (fontified t)) . 171)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3)
>      (#<marker at 164 in *scratch*> . -3) nil (#("
> "
> 						 0 1 (fontified t))
> 					       . 174)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
>      (#<marker at 164 in *scratch*> . -1)
> etc.
> 
> On a long-lived session, those elements are so abundant and they are
> added so fast that exhaust the capacity for undo info. On certain
> circunstances, while undoing, "No further undo information" is shown
> after just four undos affecting a few lines each.
> 
> On those sessions, eventually, a warning like this is displayed:
> 
>   Warning (undo): Buffer ‘blah.el’ undo info was 36040665 bytes long.
>   The undo info was discarded because it exceeded `undo-outer-limit'.

Your bug report says this is on master branch:

> In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
>  version 1.18.4) of 2025-08-08 built on zen
> Repository revision: 12354bcfdc288f111c411c87e8bdebe6dcb41a4d
> Repository branch: master

But I can only reproduce this on the igc branch.  On master, I see a
single entry for marker adjustment, not many identical ones.




This bug report was last modified today.

Previous Next


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