GNU bug report logs - #79116
31.0.50; Crash on IGC build

Previous Next

Package: emacs;

Reported by: Sean Devlin <spd <at> toadstyle.org>

Date: Mon, 28 Jul 2025 18:32:01 UTC

Severity: normal

Found in version 31.0.50

Full log


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

From: Helmut Eller <eller.helmut <at> gmail.com>
To: Gerd Möllmann <gerd.moellmann <at> gmail.com>
Cc: spd <at> toadstyle.org, Eli Zaretskii <eliz <at> gnu.org>, 79116 <at> debbugs.gnu.org,
 pipcet <at> protonmail.com
Subject: Re: bug#79116: 31.0.50; Crash on IGC build
Date: Thu, 31 Jul 2025 18:46:49 +0200
On Thu, Jul 31 2025, Gerd Möllmann wrote:

> BTW, glyph pools are only used for tty frames. Don't know if that plays
> a role here.

I didn't know that.  And the glyph matrix, is that a tty-only thing too?

Anyway, my concern is a bit more general: I think that objects without
memory barriers, (e.g. structs allocated with malloc) should be scanned
as roots.

E.g. in fix_frame there is code that uses FRAME_FONT and to get the
address of some field in a device dependent struct.  This struct is not
protected by a memory barrier; I think these kind of structs should be
roots.

In the MPS paper, section "Phase 4: Black Mutator Tracing", they say
that gray and white segments are read protected.  I assume that also
means that, at his point, there are no write barriers.  If the mutator
can read a pointer to a white object from a struct without read barriers
and put the white pointer in a black object, then we have a problem.
That's why I think that structs without memory barriers should be roots.

There might be special circumstances where code like in fix_frame is
sufficient.  E.g. if for some reason all paths to the font field go
though the read-protected frame.  But I think those special conditions
are hard to think about and it would be simpler to just make the thing a
root.

Helmut




This bug report was last modified 17 days ago.

Previous Next


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