From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Mark A. Hershberger" Subject: Re: Bug: check that org-element--cache-sync-keys is non-nil before clrhash [8.3.4 (8.3.4-42-gae73c7-elpa @ /home/mah/.emacs.d/elpa/org-20160425/)] Date: Sun, 08 May 2016 22:11:20 -0400 Message-ID: <87h9e8dlqr.fsf@flynn.nichework.com> References: <87vb2wctgv.fsf@flynn.nichework.com> <874mabciuj.fsf@saiph.selenimh> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38629) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1azaff-0007kX-He for emacs-orgmode@gnu.org; Sun, 08 May 2016 22:11:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1azafb-0002gX-2u for emacs-orgmode@gnu.org; Sun, 08 May 2016 22:11:42 -0400 Received: from nospam.nichework.com ([206.71.169.33]:34507) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1azafa-0002g9-MK for emacs-orgmode@gnu.org; Sun, 08 May 2016 22:11:39 -0400 In-reply-to: <874mabciuj.fsf@saiph.selenimh> 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" To: Nicolas Goaziou Cc: emacs-orgmode@gnu.org Nicolas Goaziou writes: > I'm surprised about this. Cache mechanism in available in Org mode > buffers only. Not even when using `orgstruct-mode' (see > 0b97a551704d50ae848c59d00b0d425554891e53). > > Could you investigate about how this happens in your case? I don't know, but I've seen it happen a few times when using "M-x woman". Backtrace below. It looks like a timer or event is being invoked and that is resulting in the error. If you have any ideas of what I should look for in my configuration, I could poke around, but right now I don't know what to even look for. -- Mark A. Hershberger NicheWork LLC 717-271-1084 Debugger entered--Lisp error: (wrong-type-argument hash-table-p nil) clrhash(nil) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) future-change) (if next (progn (let* ((v next)) (aset v 3 (+ ... ...))) (aset next 2 (aref request 2)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))) (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add (current-time) org-element-cache-sync-duration)) future-change) (if next (progn (let* (...) (aset v 3 ...)) (aset next 2 (aref request 2)))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))) (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next (aref next 0)) threshold (and (not threshold) (time-add ... org-element-cache-sync-duration)) future-change) (if next (progn (let* ... ...) (aset next 2 ...))) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys))))) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) request next) (if org-element--cache-sync-timer (progn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-requests (setq request (car org-element--cache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-element--cache-process-request request (and next ...) threshold (and ... ...) future-change) (if next (progn ... ...)) (setq org-element--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-element--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash org-element--cache-sync-keys)))))) org-element--cache-sync(#) apply(org-element--cache-sync #) byte-code("r\301\302H\303H\"\210)\301\207" [timer apply 5 6] 4) timer-event-handler([t 0 0 600000 nil org-element--cache-sync (#) idle 0])