From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Mark A. Hershberger" Subject: Bug: org-element--cache-sync called after switching buffers [8.3.1 (8.3.1-16-gf6aa53-elpa @ /home/mah/.emacs.d/elpa/org-20150810/)] Date: Wed, 19 Aug 2015 16:06:41 -0400 Message-ID: <87oai3yre6.fsf@flynn.nichework.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZS9dO-0006Ea-P3 for emacs-orgmode@gnu.org; Wed, 19 Aug 2015 16:06:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZS9dL-0002ve-Dg for emacs-orgmode@gnu.org; Wed, 19 Aug 2015 16:06:54 -0400 Received: from nospam.nichework.com ([206.71.169.33]:42828) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZS9dK-0002uH-RR for emacs-orgmode@gnu.org; Wed, 19 Aug 2015 16:06:51 -0400 Received: from localhost (localhost.localdmain [127.0.0.1]) by nospam.nichework.com (Postfix) with ESMTP id 50D325E351 for ; Wed, 19 Aug 2015 16:06:50 -0400 (EDT) Received: from nospam.nichework.com ([127.0.0.1]) by localhost (nospam.nichework.com [127.0.0.1]) (amavisd-maia, port 10024) with ESMTP id 06778-02 for ; Wed, 19 Aug 2015 16:06:50 -0400 (EDT) Received: from mail.nichework.com (mail.nichework.com [206.71.169.32]) by nospam.nichework.com (Postfix) with ESMTP id C6B3C5E4BE for ; Wed, 19 Aug 2015 16:06:46 -0400 (EDT) Received: from mail.nichework.com (localhost [127.0.0.1]) by mail.nichework.com (Postfix) with ESMTP id C0CE020C054 for ; Wed, 19 Aug 2015 16:06:46 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by mail.nichework.com (Postfix) with ESMTP id B3FBE20C053 for ; Wed, 19 Aug 2015 16:06:46 -0400 (EDT) Received: from mail.nichework.com ([127.0.0.1]) by localhost (mail.nichework.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id VFLnYJhY3F_R for ; Wed, 19 Aug 2015 16:06:46 -0400 (EDT) Received: from flynn.nichework.com.everybody.org (web.nichework.com [206.71.169.37]) by mail.nichework.com (Postfix) with ESMTPS id 4702B20C046 for ; Wed, 19 Aug 2015 16:06:44 -0400 (EDT) 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: emacs-orgmode@gnu.org While composing an email in mu4e, I get the following backtrace. It looks like this is because mu4e switches buffers between the time org-element-cache-reset is called and the time that org-element--cache-sync is called. 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 (p= rogn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt= ) (while org-element--cache-sync-requests (setq request (car org-element--c= ache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-ele= ment--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 (+ ... ...))) (a= set 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 n= ext) (if org-element--cache-sync-timer (progn (cancel-timer org-element--ca= che-sync-timer))) (catch (quote interrupt) (while org-element--cache-sync-r= equests (setq request (car org-element--cache-sync-requests) next (nth 1 or= g-element--cache-sync-requests)) (org-element--cache-process-request reques= t (and next (aref next 0)) threshold (and (not threshold) (time-add (curren= t-time) org-element-cache-sync-duration)) future-change) (if next (progn (l= et* (...) (aset v 3 ...)) (aset next 2 (aref request 2)))) (setq org-elemen= t--cache-sync-requests (cdr org-element--cache-sync-requests)))) (if org-el= ement--cache-sync-requests (org-element--cache-set-timer buffer) (clrhash o= rg-element--cache-sync-keys)))) (progn (save-current-buffer (set-buffer buffer) (let ((inhibit-quit t) re= quest next) (if org-element--cache-sync-timer (progn (cancel-timer org-elem= ent--cache-sync-timer))) (catch (quote interrupt) (while org-element--cache= -sync-requests (setq request (car org-element--cache-sync-requests) next (n= th 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 or= g-element--cache-sync-requests)))) (if org-element--cache-sync-requests (or= g-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 (p= rogn (cancel-timer org-element--cache-sync-timer))) (catch (quote interrupt= ) (while org-element--cache-sync-requests (setq request (car org-element--c= ache-sync-requests) next (nth 1 org-element--cache-sync-requests)) (org-ele= ment--cache-process-request request (and next ...) threshold (and ... ...) = future-change) (if next (progn ... ...)) (setq org-element--cache-sync-requ= ests (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]) read-from-minibuffer("Identity: " nil (keymap (10 . minibuffer-complete-a= nd-exit) (13 . minibuffer-complete-and-exit) keymap (menu-bar keymap (minib= uf "Minibuf" keymap (tab menu-item "Complete" minibuffer-complete :help "Co= mplete as far as possible") (space menu-item "Complete Word" minibuffer-com= plete-word :help "Complete at most one word") (63 menu-item "List Completio= ns" minibuffer-completion-help :help "Display all possible completions") "M= inibuf")) (27 keymap (118 . switch-to-completions)) (prior . switch-to-comp= letions) (63 . minibuffer-completion-help) (32 . minibuffer-complete-word) = (9 . minibuffer-complete) keymap (menu-bar keymap (minibuf "Minibuf" keymap= (previous menu-item "Previous History Item" previous-history-element :help= "Put previous minibuffer history element in the minibuffer") (next menu-it= em "Next History Item" next-history-element :help "Put next minibuffer hist= ory element in the minibuffer") (isearch-backward menu-item "Isearch Histor= y Backward" isearch-backward :help "Incrementally search minibuffer history= backward") (isearch-forward menu-item "Isearch History Forward" isearch-fo= rward :help "Incrementally search minibuffer history forward") (return menu= -item "Enter" exit-minibuffer :key-sequence "." :help "Terminate input and = exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort = input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-m= inibuffer) (7 . abort-recursive-edit) (C-tab . file-cache-minibuffer-comple= te) (9 . self-insert-command) (XF86Back . previous-history-element) (up . p= revious-history-element) (prior . previous-history-element) (XF86Forward . = next-history-element) (down . next-history-element) (next . next-history-el= ement) (27 keymap (114 . previous-matching-history-element) (115 . next-mat= ching-history-element) (112 . previous-history-element) (110 . next-history= -element))) nil nil nil nil) completing-read-default("Identity: " (("Personal" "" "\"Mark A. Hershberg= er\" " "" nil "" "~/.signatures/personal.txt") ("Nichewo= rk" "" "\"Mark A. Hershberger\" " "NicheWork LLC" nil ""= "~/.signatures/nichework.txt")) nil t nil nil nil nil) completing-read("Identity: " (("Personal" "" "\"Mark A. Hershberger\" " "" nil "" "~/.signatures/personal.txt") ("Nichework" "" "= \"Mark A. Hershberger\" " "NicheWork LLC" nil "" "~/.sig= natures/nichework.txt")) nil t) gnus-alias-identity-prompt() #[nil "\301\302!\210\303\304!\205.=00\304 .\305!)\207" [identity visual-= line-mode -1 fboundp gnus-alias-identity-prompt gnus-alias-use-identity] 2]= () run-hooks(change-major-mode-after-body-hook text-mode-hook message-mode-h= ook mu4e-compose-mode-hook) apply(run-hooks (change-major-mode-after-body-hook text-mode-hook message= -mode-hook mu4e-compose-mode-hook)) run-mode-hooks(mu4e-compose-mode-hook) mu4e-compose-mode() (catch (quote --cl-block-mu4e~compose-handler--) (set (make-local-variabl= e (quote mu4e-compose-parent-message)) original-msg) (put (quote mu4e-compo= se-parent-message) (quote permanent-local) t) (run-hooks (quote mu4e-compos= e-pre-hook)) (condition-case nil (mu4e-draft-open compose-type original-msg= ) (quit (kill-buffer) (message "[mu4e] Operation aborted") (throw (quote --= cl-block-mu4e~compose-handler--) nil))) (mu4e~draft-insert-mail-header-sepa= rator) (save-excursion (goto-char (point-max)) (let ((--dolist-tail-- inclu= des) att) (while --dolist-tail-- (setq att (car --dolist-tail--)) (mml-atta= ch-file (plist-get att :file-name) (plist-get att :mime-type)) (setq --doli= st-tail-- (cdr --dolist-tail--))))) (mu4e~compose-set-friendly-buffer-name = compose-type) (set-buffer-modified-p nil) (if (member compose-type (quote (= new forward))) (message-goto-to) (message-goto-body)) (set (make-local-vari= able (quote mu4e-compose-parent-message)) original-msg) (put (quote mu4e-co= mpose-parent-message) (quote permanent-local) t) (mu4e~compose-hide-headers= ) (mu4e-compose-mode)) mu4e~compose-handler(new) (if (eq compose-type (quote new)) (mu4e~compose-handler (quote new)) (let= * ((docid (mu4e-message-field msg :docid)) (decrypt (and (member (quote enc= rypted) (mu4e-message-field msg :flags)) (if (eq mu4e-decryption-policy (qu= ote ask)) (yes-or-no-p (mu4e-format "Decrypt message?")) mu4e-decryption-po= licy)))) (let ((viewwin (get-buffer-window mu4e~view-buffer))) (if (window-= live-p viewwin) (progn (select-window viewwin)))) (mu4e~proc-compose compos= e-type decrypt docid))) (let ((msg (mu4e-message-at-point (quote noerror)))) (if (or msg (eq comp= ose-type (quote new))) nil (mu4e-warn "No message at point")) (if (member c= ompose-type (quote (reply forward edit new))) nil (mu4e-error "Invalid comp= ose type '%S'" compose-type)) (if (and (eq compose-type (quote edit)) (not = (member (quote draft) (mu4e-message-field msg :flags)))) (progn (mu4e-warn = "Editing is only allowed for draft messages"))) (if (eq compose-type (quote= new)) (mu4e~compose-handler (quote new)) (let* ((docid (mu4e-message-field= msg :docid)) (decrypt (and (member (quote encrypted) (mu4e-message-field m= sg :flags)) (if (eq mu4e-decryption-policy ...) (yes-or-no-p ...) mu4e-decr= yption-policy)))) (let ((viewwin (get-buffer-window mu4e~view-buffer))) (if= (window-live-p viewwin) (progn (select-window viewwin)))) (mu4e~proc-compo= se compose-type decrypt docid)))) mu4e-compose(new) mu4e-compose-new() call-interactively(mu4e-compose-new nil nil) command-execute(mu4e-compose-new) Emacs : GNU Emacs 24.5.1 (x86_64-pc-linux-gnu, GTK+ Version 3.16.4) of 2015-06-28 on trouble, modified by Debian Package: Org-mode version 8.3.1 (8.3.1-16-gf6aa53-elpa @ /home/mah/.emacs.d= /elpa/org-20150810/) current state: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D (setq org-hide-leading-stars t org-tab-first-hook '(org-hide-block-toggle-maybe org-babel-hide-result-tog= gle-maybe org-babel-header-arg-expand) org-follow-link-hook '((lambda nil (when (eq major-mode (quote gnus-summary-mode)) (gnus-summary-insert-dormant-articles)) ) ) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-co= mmand-hook) org-gnus-prefer-web-links t org-reverse-note-order t org-occur-hook '(org-first-headline-recenter) org-metaup-hook '(org-babel-load-in-session-maybe) org-agenda-start-on-weekday nil org-clock-into-drawer 3 org-confirm-shell-link-function 'yes-or-no-p org-clock-out-switch-to-state "WAIT" org-startup-folded 'content org-special-ctrl-a/e t org-agenda-skip-scheduled-if-done t org-agenda-custom-commands '(("a" "My custom agenda" ((org-agenda-list nil nil 1) (sacha/org-agen= da-load) (sacha/org-agenda-clock) (tags "PROJECT-WAI= TING") (tags-todo "WAITING") (tags-todo "-MAYBE")) ) ("c" todo #("DONE|DEFERRED|CANCELLED" 0 23 (f= ace org-warning)) nil) ("w" todo #("WAITING" 0 7 (face org-warning))= nil) ("W" agenda "" ((org-agenda-ndays 21))) ("A" agenda "" ((org-agenda-skip-function (lambda nil (org-agenda-skip-entry-if (quote notregex= p) "\\=3D.*\\[#A\\]")) ) (org-agenda-ndays 1) (org-agenda-overriding-header "Today's Prio= rity #A tasks: ")) ) ("u" alltodo "" ((org-agenda-skip-function (lambda nil (org-agenda-skip-entry-if (quote schedule= d) (quote deadline) (quote regexp) "<[^>\n]+>") ) ) (org-agenda-overriding-header "Unscheduled = TODO entries: ")) ) ) org-default-notes-file "~/org/notes.org" org-todo-keyword-faces '(("TODO" :foreground "blue" :weight bold)) org-capture-templates '(("t" "Task" entry (file+headline "~/org/notes.org"= "Tasks") "* TODO %?\n %u\n %a" :prepend t) ("j" "Journal Entry" entry (file "~/org/journal.or= g") "* Journal Entry at %U %^{Title}p\n:PROPERTIES:\n= :Timestamp: %T\n:END:" :prepend t) ) org-agenda-include-diary t org-startup-indented t org-after-todo-state-change-hook '(org-clock-out-if-current) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-confi= gure-edit-buffer) org-tags-column -132 org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-mode-hook '(org-clock-load #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-show-block-all = append local] 5] #[nil "\300\301\302\303\304$\207" [org-add-hook change-major-mode-hook org-babel-show-resu= lt-all append local] 5] org-babel-result-hide-spec org-babel-hide-all-hashes org-b= ullets-mode) org-fontify-done-headline t org-archive-hook '(org-attach-archive-delete-maybe) org-clock-persist t org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-= maybe) org-clock-auto-clock-resolution t org-clock-in-switch-to-state "INPROGRESS" org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers o= rg-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-archive-location "archive/%s_archive::" org-todo-keywords '((sequence "TODO" "INPROGRESS(i!/!)" "WAIT(w)" "|" "CAN= CELED(@)" "DONE(@)")) org-agenda-ndays 7 org-fast-tag-selection-single-key 'expert org-confirm-elisp-link-function 'yes-or-no-p org-metadown-hook '(org-babel-pop-to-session-maybe) org-agenda-skip-deadline-if-done t org-babel-load-languages '((dot . t)) org-clock-sound t org-agenda-files '("~/home-files/org") org-clock-out-hook '(org-clock-remove-empty-clock-drawer) org-confirm-babel-evaluate nil org-clock-out-remove-zero-time-clocks t )