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: Gerd Möllmann <gerd.moellmann <at> gmail.com>
To: Óscar Fuentes <oscarfv <at> eclipso.eu>
Cc: 79200 <at> debbugs.gnu.org, Stefan Monnier <monnier <at> iro.umontreal.ca>
Subject: bug#79200: 31.0.50; Duplicated elements for '#<marker at' in buffer-undo-list
Date: Sat, 09 Aug 2025 11:14:50 +0200
Óscar Fuentes <oscarfv <at> eclipso.eu> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> Óscar Fuentes <oscarfv <at> eclipso.eu> writes:
>>
>>> 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.
>>
>> Interesting. I come from a slightly different angle, that in my mac+igc
>> port I had sometimes only 3 undos before I got "no more undo
>> information". and I thought I had messed up something.
>
> Same here, but igc/Linux. Please note that the recipe on my report is
> with yesterday's master, though.
>
>> My cimpler recipe is
>>
>> 1. Make a new buffer x.el
>> 2. Type an a
>> 3. undo
>> 4. C-h v buffer-undo-list
>>
>> => 
>>
>> Value:
>> (nil ("a" . 1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1)
>>      (#<marker at 1 in x.el> . -1) nil (1 . 2) (t . 0))
>> Local in buffer x.el; global value is nil
>
> I can't reproduce this with my master's build:
>
> emacs -Q x.el
>
> type an a
>
> undo
>
> C-h v buffer-undo-list
>
> Its value is
> (nil (#("a" 0 1 (fontified t)) . 1) (#<marker at 1 in x.el> . -1) nil
>      (1 . 2) (t . -1))
> Local in buffer x.el; global value is nil
>
> However, doing the same with my igc build of 1 of August yields this:
>
> Its value is
> (nil (#("a" 0 1 (fontified t)) . 1) (#<marker at 1 in x.el> . -1)
>      (#<marker at 1 in x.el> . -1) (#<marker at 1 in x.el> . -1) nil
>      (1 . 2) (t . -1))
> Local in buffer x.el; global value is nil

Now I'm completely confused. Your report had

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 it's not happending in master?

And I think, if didn't make a cockpit error, I tested that with master.
Have to check this later, though.

>
>
>> So far I can't see what is the cause. I would have guessed something in
>> or around primitive-undo, but that hasn't changed forever.
>
> Eli in emacs-devel pointed to the possibility that something is creating
> lots of markers. Checking if those repeated elements in buffer-undo-list
> point to the same marker or to different ones would be revealing. Or
> not: I don't even know if getting markers to the same place in a buffer
> yield the same object or new ones.

Hm. 




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.