From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Lundin Subject: Re: still seeing semi-regular lockups Date: Wed, 25 Jun 2014 21:58:02 -0500 Message-ID: <87zjh0qsw5.fsf@fastmail.fm> References: <87siocrbyb.fsf@ericabrahamsen.net> <87siobtn1i.fsf@bzg.ath.cx> <87ha4r1j91.fsf@tanger.home> <87k39hdf2o.fsf@tanger.home> <87ppj86elt.fsf@ericabrahamsen.net> <874n0kde2y.fsf@tanger.home> <87bnus4s5n.fsf@ericabrahamsen.net> <87egye7kx3.fsf@nicolasgoaziou.fr> <87a992mleu.fsf@ericabrahamsen.net> <87mwd1hbpx.fsf@fastmail.fm> <877g45jv61.fsf@tanger.home> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36149) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wzzt5-0007te-4q for emacs-orgmode@gnu.org; Wed, 25 Jun 2014 22:58:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Wzzsz-0002GS-SN for emacs-orgmode@gnu.org; Wed, 25 Jun 2014 22:58:11 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:59726) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Wzzsz-0002G0-Nd for emacs-orgmode@gnu.org; Wed, 25 Jun 2014 22:58:05 -0400 In-Reply-To: <877g45jv61.fsf@tanger.home> (daimrod@gmail.com's message of "Wed, 25 Jun 2014 16:38:30 +0900") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Daimrod Cc: emacs-orgmode@gnu.org Daimrod writes: > Matt Lundin 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