emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Emacs hangs while loading org file with python blocks


From: Clément Pit--Claudel
Subject: Re: [O] Emacs hangs while loading org file with python blocks
Date: Tue, 6 Dec 2016 22:41:04 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1

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: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]