unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Luke Powers <luke.powers@openx.com>
Cc: 21629@debbugs.gnu.org
Subject: bug#21629: 25.0.50; python.el freezes up around docstrings.
Date: Thu, 8 Oct 2015 11:22:20 -0700	[thread overview]
Message-ID: <CACOeLr74-o6bJ58HPriCF4a_TV70eoYhUqkXng0wvnx8H2JP2g@mail.gmail.com> (raw)
In-Reply-To: <56167D6A.5070507@easy-emacs.de>

[-- Attachment #1: Type: text/plain, Size: 1943 bytes --]

fwiw, I went through the tree with bisect and found
3928ef2dd5b8febf3b1d9c1bfb22af3698d16bea
<https://github.com/emacs-mirror/emacs/commit/3928ef2dd5b8febf3b1d9c1bfb22af3698d16bea>
to be the first commit where the issue pops up.

On Thu, Oct 8, 2015 at 7:27 AM, Andreas Röhler <
andreas.roehler@easy-emacs.de> wrote:

>
> Am 06.10.2015 um 16:54 schrieb Eli Zaretskii:
>
>> From: Jacob MacDonald <jaccarmac@gmail.com>
>>> Date: Tue, 06 Oct 2015 04:48:50 +0000
>>>
>>> Begin from a fresh 'emacs -Q'. Create a Python file. Insert a long
>>> docstring which contains a header line and then a long body which
>>> includes a few line breaks and spaces in it. The docstring should look
>>> something like this:
>>>
>>> """test header
>>>
>>> lorem ipsum... more text more text more text
>>> x10 lines
>>> ...
>>> ...
>>> """
>>>
>>> Save the file and close emacs. Start a fresh 'emacs -Q'. Open dired in
>>> the directory which contains the Python file you created. Navigate to
>>> the file and try to open in from dired. Emacs will freeze indefinitely
>>> and eat all the system resources it can. You can break the cycle by
>>> pressing C-q many times, but the freeze happens again on every single
>>> redisplay. If you wait awhile before cancelling the redisplay, you may
>>> see that fontification has frozen somewhere in the middle of the
>>> docstring.
>>>
>> It infloops in python-nav-end-of-statement.  The loop there ends up
>> one position before EOB, then jumps back to string-start, and so on
>> and so forth, ad nauseam.
>>
>> I have no idea what causes this, but I hope Python-mode experts and
>> perhaps Stefan (due to syntax stuff) will be able to figure this out.
>>
>>
>>
>>
>>
> With a while-loop reading complex conditions IMO there is always an
> abstract danger.
>
> python-mode.el uses a heuristic exit:
>
> `py-max-specpdl-size' - default is `max-specpdl-size'
>
>
>
>

[-- Attachment #2: Type: text/html, Size: 2685 bytes --]

      reply	other threads:[~2015-10-08 18:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-06  4:48 bug#21629: 25.0.50; python.el freezes up around docstrings Jacob MacDonald
2015-10-06 14:54 ` Eli Zaretskii
2015-10-08 14:27   ` Andreas Röhler
2015-10-08 18:22     ` Luke Powers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACOeLr74-o6bJ58HPriCF4a_TV70eoYhUqkXng0wvnx8H2JP2g@mail.gmail.com \
    --to=luke.powers@openx.com \
    --cc=21629@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).