emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] still seeing semi-regular lockups


From: Matt Lundin
Subject: Re: [O] still seeing semi-regular lockups
Date: Wed, 25 Jun 2014 21:58:02 -0500
User-agent: Gnus/5.130012 (Ma Gnus v0.12) Emacs/24.4.50 (gnu/linux)

Daimrod <address@hidden> writes:

> Matt Lundin <address@hidden> writes:
>>
>> With the latest git, I've experienced three lock-ups/freezes this
>> evening when a) archiving a subtree to a file, b) changing a todo state
>> with repeating timestamp, and 3) calling C-c C-c in an org-capture
>> buffer. (I don't think this is due to a recent change - I've been
>> running into these lockups sporadically for several months.)
>>
>> The freezes are very difficult to replicate reliably. When they happen,
>> emacs is unresponsive and can only be killed from the outside. Any tips
>> on how to debug this would be greatly appreciated.
>
> See my previous post:
> http://thread.gmane.org/gmane.emacs.orgmode/86255/focus=86263
>
> You can wrap `jit-lock--debug-fontify' with:
>
> (advice-add 'jit-lock--debug-fontify :around
>             (lambda (fun &rest args)
>               (with-local-quit (apply fun args))))
>
> and then force emacs to break and display a backtrace by sending the
> SIGUSR2 to the emacs process.

O.K., I built the most emacs development from bzr and used the advice
above.

With "killall -USR2 emacs", the following backtrace popped up, which
highlights flyspell as the culrpit. Note: I have flyspell turned on in
all text buffers, but I have (for several months) only experienced
lockups when using org-mode. I spend more time in TeX buffers than in
org-mode, and I have never had a lockup with AUCTeX.

--8<---------------cut here---------------start------------->8---
* (setq quit-flag t)
  (condition-case nil (let ((inhibit-quit nil)) (let ((command
  this-command) deactivate-mark) (if (flyspell-check-pre-word-p)
  (save-excursion (quote (flyspell-debug-signal-pre-word-checked))
  (goto-char flyspell-pre-point) (flyspell-word))) (if
  (flyspell-check-word-p) (progn (quote
  (flyspell-debug-signal-word-checked)) (flyspell-word) (setq
  flyspell-pre-pre-buffer (current-buffer)) (setq flyspell-pre-pre-point
  (point))) (setq flyspell-pre-pre-buffer nil) (setq
  flyspell-pre-pre-point nil) (if (and (symbolp this-command) (get
  this-command (quote flyspell-delayed))) (progn (setq
  flyspell-word-cache-end -1) (setq flyspell-word-cache-result (quote
  _))))) (while (and (not (input-pending-p)) (consp flyspell-changes))
  (let ((start (car ...)) (stop (cdr ...))) (if
  (flyspell-check-changed-word-p start stop) (save-excursion (quote ...)
  (goto-char start) (flyspell-word))) (setq flyspell-changes (cdr
  flyspell-changes)))) (setq flyspell-previous-command command))) (quit
  (setq quit-flag t) (eval (quote (ignore nil)))))
    (progn (condition-case nil (let ((inhibit-quit nil)) (let ((command
    this-command) deactivate-mark) (if (flyspell-check-pre-word-p)
    (save-excursion (quote (flyspell-debug-signal-pre-word-checked))
    (goto-char flyspell-pre-point) (flyspell-word))) (if
    (flyspell-check-word-p) (progn (quote
    (flyspell-debug-signal-word-checked)) (flyspell-word) (setq
    flyspell-pre-pre-buffer (current-buffer)) (setq
    flyspell-pre-pre-point (point))) (setq flyspell-pre-pre-buffer nil)
    (setq flyspell-pre-pre-point nil) (if (and (symbolp this-command)
    (get this-command ...)) (progn (setq flyspell-word-cache-end -1)
    (setq flyspell-word-cache-result ...)))) (while (and (not
    (input-pending-p)) (consp flyspell-changes)) (let ((start ...) (stop
    ...)) (if (flyspell-check-changed-word-p start stop) (save-excursion
    ... ... ...)) (setq flyspell-changes (cdr flyspell-changes)))) (setq
    flyspell-previous-command command))) (quit (setq quit-flag t) (eval
    (quote (ignore nil))))))
      (if flyspell-mode (progn (condition-case nil (let ((inhibit-quit
      nil)) (let ((command this-command) deactivate-mark) (if
      (flyspell-check-pre-word-p) (save-excursion (quote ...) (goto-char
      flyspell-pre-point) (flyspell-word))) (if (flyspell-check-word-p)
      (progn (quote ...) (flyspell-word) (setq flyspell-pre-pre-buffer
      ...) (setq flyspell-pre-pre-point ...)) (setq
      flyspell-pre-pre-buffer nil) (setq flyspell-pre-pre-point nil) (if
      (and ... ...) (progn ... ...))) (while (and (not ...) (consp
      flyspell-changes)) (let (... ...) (if ... ...) (setq
      flyspell-changes ...))) (setq flyspell-previous-command command)))
      (quit (setq quit-flag t) (eval (quote (ignore nil)))))))
        flyspell-post-command-hook()
          recursive-edit()
--8<---------------cut here---------------end--------------->8---

Matt



reply via email to

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