GNU bug report logs - #50571
28.0.50; Redisplay segfaults with empty face cache

Previous Next

Package: emacs;

Reported by: "Basil L. Contovounesios" <contovob <at> tcd.ie>

Date: Mon, 13 Sep 2021 15:00:02 UTC

Severity: normal

Found in version 28.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: "Basil L. Contovounesios" <contovob <at> tcd.ie>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 50571 <at> debbugs.gnu.org
Subject: bug#50571: 28.0.50; Redisplay segfaults with empty face cache
Date: Tue, 14 Sep 2021 20:45:18 +0100
Eli Zaretskii [2021-09-14 16:33 +0300] wrote:

>> Date: Tue, 14 Sep 2021 16:03:02 +0300
>> From: Eli Zaretskii <eliz <at> gnu.org>
>> Cc: 50571 <at> debbugs.gnu.org
>> 
>> Thanks, I see the reason now.  It's because we allow to have arbitrary
>> Lisp to be registered in jit-lock-functions, and then that arbitrary
>> Lisp is called in the middle of redisplay, and in this case creates a
>> whole new frame with faces.  As luck would have it, we decide right
>> there and then perform routine maintenance and release all the faces
>> on all the frames...
>> 
>> I'm thinking about the best solution for this.
>
> Does the patch below give good results?

Yes, applying it makes the issue go away, and reverting it reintroduces
the segfault.  I didn't notice any other issues.  Thanks!

-- 
Basil




This bug report was last modified 3 years and 283 days ago.

Previous Next


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