GNU bug report logs - #58752
jit-lock-function infinite loop?

Previous Next

Package: emacs;

Reported by: Alex Holehouse <alex.holehouse <at> gmail.com>

Date: Mon, 24 Oct 2022 02:16:02 UTC

Severity: normal

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

Bug is archived. No further changes may be made.

Full log


Message #10 received at 58752-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Alex Holehouse <alex.holehouse <at> gmail.com>
Cc: 58752-done <at> debbugs.gnu.org
Subject: Re: bug#58752: jit-lock-function infinite loop?
Date: Thu, 27 Oct 2022 19:17:47 +0300
> From: Alex Holehouse <alex.holehouse <at> gmail.com>
> Date: Sun, 23 Oct 2022 18:37:37 -0500
> 
> Apologies if this is a reported and known issue, but after several hours of tracking this down, I think I've found
> a bug in the font-lock module when working with Python code on Emacs28 (macOS 12.6 on Apple Silicon
> (M1)). This is an issue certainly in Emacs 28 but not in earlier versions, so my temporary fix here is just to
> revert back to emacs 26; I haven't tested 27.
> 
> I think the issue stems from inside the jit-lock-function in font-lock.el, although my experience in hunting down
> emacs issues is limited. 
> 
> Specifically, it seems that the function falls into an infinite loop when trying to format ill-behaving Python code.
> The issue arises when a specific combination of things are true: an un-closed docstring that opens with three
> double quotes (but does not close) followed by docstrings in other functions with 4 or more examples of single
> quotation marks that are unsatisfied. These unsatisfied single quotation marks are, of course, allowed inside a
> docstring, which means even when editing a Python file, if the unclosed triple double-quote docstring appears
> event temporarily (e.g. as you're writing the docstring) the entire program freezes. 
> 
> I've narrowed this down to a minimal example that, at least in my setup (nothing fancy, vanilla emacs from
> both emacsformacosx and from homebrew), reproduces the issue. The code snippet can be found here:
> https://gist.github.com/alexholehouse/2259580ed2cb2caf75a16ee31d927465 
> 
> If you open this file in emacs, the code renders but if you scroll down emacs freezes, but can be unfrozen by
> running kill -SIGUSR2 <emacs PID> from another terminal window.

Thank you very much for your efforts to provide a minimal example.

I can reproduce this bug in Emacs 28, but not in Emacs 29.  So I think
the underlying bug was already fixed, and I'm therefore closing this
bug.




This bug report was last modified 2 years and 210 days ago.

Previous Next


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