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> telefonica.net>
Cc: 79200 <at> debbugs.gnu.org, pipcet <at> protonmail.com, me <at> pengjiz.com, 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 14:31:15 +0200
Óscar Fuentes <oscarfv <at> telefonica.net> writes:

> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>
>> Gerd Möllmann <gerd.moellmann <at> gmail.com> writes:
>>
>>> Makes sense: no idea what that is, but it's something with mode-lines,
>>> and what Pip found out is also the mode-line department. 
>>
>> And with Pip's patch applied, I can now longer reproduce the problem.
>
> Applied the patch to igc (adding the call to detach_marker.) It took a
> while of monkeying around, but eventually...
>
>
> (nil (363 . 364) nil (354 . 363) nil (353 . 354) nil (352 . 353) nil
>      (351 . 352) nil (#("
> "
> 			0 1 (fontified t))
> 		      . 351)
>      (#<marker (moves after insertion) at 351 in *scratch*> . 1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 363 in *scratch*> . -1)
>      (#<marker at 363 in *scratch*> . -1)
>      (#<marker in no buffer> . -1) nil
>      (#("n" 0 1 (fontified t)) . 352)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 363 in *scratch*> . -1)
> etc.
>
>
> Bummer.
>
> Looks like the patch puts igc on the same footing as master wrt the
> required work to reproduce the problem.

That's something, thanks to Pip!

Can you determine if these are different markers (sxhash-eq)?

> As a side note, executing igc-collect removed some elements:
>
> (nil (363 . 364) nil (354 . 363) nil (353 . 354) nil (352 . 353) nil
>      (351 . 352) nil (#("
> "
> 			0 1 (fontified t))
> 		      . 351)
>      (#<marker (moves after insertion) at 351 in *scratch*> . 1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker at 364 in *scratch*> . -1)
>      (#<marker in no buffer> . -1) (#<marker in no buffer> . -1)
>      (#<marker in no buffer> . -1) nil
>      (#("n" 0 1 (fontified t)) . 352)
> etc.
>
> Note that on my first copy&paste of buffer-undo-list the first sequence
> of repeated elements was 8, but above it shows 6. The other repeated
> sequences show a similar change.

I would guess igc_collect also does a "weak collection". But it's only a
guess.





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.