Subject: Re: bug#61000: emacs-28.2 hangs on displaying ill-formed python source

From: Eli Zaretskii <[email-masked]>
Date: Sun, 22 Jan 2023 12:53:09 +0200

> From: Yoichi Nakayama <[email-masked]>
> Date: Sun, 22 Jan 2023 16:21:02 +0900
> 
> Hi,
> I found Emacs-28.2 becomes inoperable (hangs at 100% CPU usage)
> when displaying certain ill-formed Python source code.
> 
> How to reproduce:
> (1) prepare python source file
> https://raw.githubusercontent.com/sqlfluff/sqlfluff/6071b70ef6a46b19141495ee8d38b41b27750b2c/src/sqlfluff/dialects/dialect_snowflake.py
> (2) open it by "emacs -Q dialect_snowflake.py"
> (3) jump to line 767 by "M-g g 767 RET".
> (4) remove closing triple quotes by "C-k"
> 
> class FunctionNameSegment(ansi.FunctionNameSegment):
>     """Function name, including any prefix bits, e.g. project or schema.
>     Overriding FunctionNameSegment to support Snowflake's IDENTIFIER
> pseudo-function.
>     """ <== remove this triple quote
> 
> 
> I also verified the following:
> * The problem doesn't occur with Emacs-28.1
> * The problem doesn't occur when I load lisp/progmode/python.el
> before 1b77362 between step (2) and (3).
> https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=1b7736277114bf91012b817a4e2557625b7340a5
> 
> > commit 1b7736277114bf91012b817a4e2557625b7340a5
> > Author: Lars Ingebrigtsen <[email-masked]>
> > Date:   Mon Apr 18 13:17:32 2022 +0200
> >
> >     Avoid hangs in python-mode with debug-on-error set
> >
> >     * lisp/progmodes/python.el (python-nav-end-of-statement): Avoid
> >     using cl-assert here, because this is called from the font-lock
> >     machinery, and if debug-on-error is set here, we'll hang Emacs
> >     (bug#54996).
> >
> >     Do not merge to master.

Thanks, I can reproduce this in Emacs 28.2, but not on what will be
soon Emacs 29.1.  So I guess the fact that we didn't merge the above
"fix" to master avoids the problem in Emacs 29.

So I think this problem is limited to Emacs 28.2, and we don't have to
do anything about it, since we don't plan any additional releases from
the macs-28 branch.

Thanks.