GNU bug report logs - #61000
emacs-28.2 hangs on displaying ill-formed python source

Previous Next

Package: emacs;

Reported by: Yoichi Nakayama <yoichi.nakayama <at> gmail.com>

Date: Sun, 22 Jan 2023 07:22:01 UTC

Severity: normal

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: Yoichi Nakayama <yoichi.nakayama <at> gmail.com>
To: 61000 <at> debbugs.gnu.org
Subject: bug#61000: emacs-28.2 hangs on displaying ill-formed python source
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 <larsi <at> gnus.org>
> 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,
-- 
Yoichi NAKAYAMA




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

Previous Next


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