emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: "Clément Pit--Claudel" <clement.pit@gmail.com>
To: emacs-orgmode@gnu.org
Subject: Re: Emacs hangs while loading org file with python blocks
Date: Tue, 6 Dec 2016 22:41:04 -0500	[thread overview]
Message-ID: <019b6d90-65ae-afd3-fec7-da9a6b8351d3@gmail.com> (raw)
In-Reply-To: <m2pol4cy6y.fsf@block-party.net>


[-- Attachment #1.1: Type: text/plain, Size: 5260 bytes --]

Hi David,

It might be good to open a bug report on the Emacs side; a Python font-locking freeze was fixed on master recently, but there may be other ones (your example hangs Emacs for me too), and your profile doesn't seem very Org-specific.

The following backtrace might be useful too:

Debugger entered--Lisp error: (quit)
  python-nav-end-of-statement()
  python-info-end-of-statement-p()
  python-info-end-of-block-p()
  python-nav--forward-sexp(-1 nil nil)
  python-nav-forward-sexp(-1 nil nil)
  python-nav-backward-sexp()
  python-info-docstring-p((0 nil 24 34 nil nil 0 nil 42 nil nil))
  python-font-lock-syntactic-face-function((0 nil 24 34 nil nil 0 nil 42 nil nil))
  font-lock-fontify-syntactically-region(1 72 nil)
  font-lock-default-fontify-region(1 72 nil)
  font-lock-fontify-region(1 72 nil)
  font-lock-default-fontify-buffer()
  #[(_beg _end) … [font-lock-fontified font-lock-mode font-lock-default-fontify-buffer nil] 2](1 72)
  org-font-lock-ensure()
  org-src-font-lock-fontify-block(#("python" 0 6 (fontified t)) 93 163)
  org-fontify-meta-lines-and-blocks-1(173)
  org-fontify-meta-lines-and-blocks(173)
  font-lock-fontify-keywords-region(1 173 nil)
  font-lock-default-fontify-region(1 173 nil)
  font-lock-fontify-region(1 173)
  #[…](font-lock-fontify-region)
  run-hook-wrapped(#[…] font-lock-fontify-region)
  jit-lock--run-functions(1 173)
  jit-lock-fontify-now(1 501)
  jit-lock-function(1)
  redisplay_internal\ \(C\ function\)()

Cheers,
Clément.

On 2016-12-06 20:41, David Dynerman wrote:
> Dear list,
> 
> For several months I've been encountering a frustrating bug. My emacs hangs while initially loading an org file with ~3000 lines and around two dozen python blocks. If I press C-g during the lockup, emacs wakes up and the file is loaded. The hang does not re-occur after happening on initial load - the bug will reoccur only if I restart emacs and load the file again. The hang seems to be related to fontifying the python blocks: after I abort with C-g, some blocks will be unfontified. 
> 
> I previously emailed the list about this bug (Wed, 17 Aug 2016, subject 'Emacs hangs while loading .org file'), but didn't have an easy way to reproduce the problem.
> 
> I've now managed to extract a minimal org file that reproduces the hang:
> 
> #+BEGIN_SRC python
>   """xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"""
> #+END_SRC
> #+BEGIN_SRC python
>   class x:  
>       def x(self):
>           """
> 	  """
>           pass
> #+END_SRC
> 
> To reproduce:
> 
> 1) Save above as bug.org
> 2) Open a fresh emacs process, and C-x f bug.org <RET>
> 3) Observe emacs is unresponsive. I've let it run as long as 30 mins without any change. 
> 
> I am able to reproduce with emacs -Q, only executing the following in *scratch*:
> 
> (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/org") ;; org from git installed here
> (require 'org)
> 
> This is with the latest org code from git (release_9.0-132-gd65aa3). The bug does NOT occur with org 8.2.10. I've been encountering this bug for several months, but unfortunately I don't remember exactly when I first saw it.
> 
> I'm running GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, Carbon Version 157 AppKit 1404.47) of 2016-11-24.
> 
> I'm mystified as to what's going on here. It seems that removing any of the python code in the example above causes the bug to disappear, but I have no clue what the problem might be.
> 
> I've attached a profiler report captured during the hang. Here is the relevant part:
> 
>            - org-src-font-lock-fontify-block                    17419  46%
>             - org-font-lock-ensure                              17240  45%
>              - #<compiled 0x41086c73>                           17240  45%
>               - font-lock-default-fontify-buffer                17240  45%
>                - font-lock-fontify-region                       17240  45%
>                 - font-lock-default-fontify-region              17240  45%
>                  - font-lock-fontify-syntactically-region              17240  45%
>                   - python-font-lock-syntactic-face-function              17240  45%
>                    - python-info-docstring-p                    17240  45%
>                     - python-nav-backward-sexp                  17240  45%
>                      - python-nav-forward-sexp                  17240  45%
>                       - python-nav--forward-sexp                17240  45%
>                        - python-info-end-of-block-p              17240  45%
>                         - python-info-end-of-statement-p              17240  45%
>                          - python-nav-end-of-statement              15444  41%
>                             syntax-ppss                          8641  22%
> 
> It looks like emacs is getting stuck navigating the python blocks during fontification. The last org-mode call appears to be (org-font-lock-ensure).
> 
> If anyone has any suggestions on how to fix this, I'd be very interested to hearthem - I'm working with larger and larger org files containing python code, so I'm encountering this bug frequently.
> 
> Thank you very much,
> David
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2016-12-07  3:41 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-07  1:41 Emacs hangs while loading org file with python blocks David Dynerman
2016-12-07  3:41 ` Clément Pit--Claudel [this message]
2016-12-07 13:41 ` Alan Schmitt
2016-12-07 18:33   ` David Dynerman

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.orgmode.org/

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

  git send-email \
    --in-reply-to=019b6d90-65ae-afd3-fec7-da9a6b8351d3@gmail.com \
    --to=clement.pit@gmail.com \
    --cc=emacs-orgmode@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/org-mode.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).