From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Possible bug in the org-element cache code? Date: Tue, 07 Jan 2014 23:57:28 -0500 Message-ID: <878uur135z.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57949) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0lDF-00066Q-7t for emacs-orgmode@gnu.org; Tue, 07 Jan 2014 23:57:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1W0lD8-0007yP-WE for emacs-orgmode@gnu.org; Tue, 07 Jan 2014 23:57:53 -0500 Received: from plane.gmane.org ([80.91.229.3]:34852) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1W0lD8-0007yH-LC for emacs-orgmode@gnu.org; Tue, 07 Jan 2014 23:57:46 -0500 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1W0lD6-0002JZ-Dp for emacs-orgmode@gnu.org; Wed, 08 Jan 2014 05:57:44 +0100 Received: from pool-98-110-175-184.bstnma.fios.verizon.net ([98.110.175.184]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 08 Jan 2014 05:57:44 +0100 Received: from ndokos by pool-98-110-175-184.bstnma.fios.verizon.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 08 Jan 2014 05:57:44 +0100 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 --=-=-= Content-Type: text/plain I've gotten the attached backtrace a couple of times in the past few days. Also same error with org-cache-sync. I'm not sure how reproducible it is and I have to admit that I've been running with a possibly tainted emacs/org for the last few days. I'll restart emacs and try to keep it pristine and see if it happens again, but I thought I'd post the backtrace just in case it is real. --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=bt Content-Transfer-Encoding: quoted-printable Content-Description: Backtrace Debugger entered--Lisp error: (wrong-type-argument arrayp #s(hash-table siz= e 5003 test eq rehash-size 1.5 rehash-threshold 0.8 data (1 ((paragraph (:b= egin 1 :end 3 :contents-begin 1 :contents-end 2 :post-blank 2 :post-affilia= ted 1 :parent nil))) 3 ((paragraph (:begin 3 :end 164 :contents-begin 3 :co= ntents-end 162 :post-blank 2 :post-affiliated 3 :parent nil))) 164 ((paragr= aph (:begin 164 :end 282 :contents-begin 164 :contents-end 282 :post-blank = 0 :post-affiliated 164 :parent nil)) (233 nil) (164 ((link . 164)) (link (:= type "gnus" :path "gmane.emacs.orgmode#87k3edcbe5.fsf@alphaville.bos.redhat= .com" :raw-link "gnus:gmane.emacs.orgmode#87k3edcbe5.fsf@alphaville.bos.red= hat.com" :application nil :search-option nil :begin 164 :end 282 :contents-= begin 233 :contents-end 280 :post-blank 0 :parent (paragraph (:begin 164 :e= nd 282 :contents-begin 164 :contents-end 282 :post-blank 0 :post-affiliated= 164 :parent nil)))) (link (:type "gnus" :path "gmane.emacs.orgmode#87k3edc= be5.fsf@alphaville.bos.redhat.com" :raw-link "gnus:gmane.emacs.orgmode#87k3= edcbe5.fsf@alphaville.bos.redhat.com" :application nil :search-option nil := begin 164 :end 282 :contents-begin 233 :contents-end 280 :post-blank 0 :par= ent (paragraph (:begin 164 :end 282 :contents-begin 164 :contents-end 282 := post-blank 0 :post-affiliated 164 :parent nil))))))))) aref(#s(hash-table size 5003 test eq rehash-size 1.5 rehash-threshold 0.8= data (1 ((paragraph (:begin 1 :end 3 :contents-begin 1 :contents-end 2 :po= st-blank 2 :post-affiliated 1 :parent nil))) 3 ((paragraph (:begin 3 :end 1= 64 :contents-begin 3 :contents-end 162 :post-blank 2 :post-affiliated 3 :pa= rent nil))) 164 ((paragraph (:begin 164 :end 282 :contents-begin 164 :conte= nts-end 282 :post-blank 0 :post-affiliated 164 :parent nil)) (233 nil) (164= ((link . 164)) (link (:type "gnus" :path "gmane.emacs.orgmode#87k3edcbe5.f= sf@alphaville.bos.redhat.com" :raw-link "gnus:gmane.emacs.orgmode#87k3edcbe= 5.fsf@alphaville.bos.redhat.com" :application nil :search-option nil :begin= 164 :end 282 :contents-begin 233 :contents-end 280 :post-blank 0 :parent (= paragraph (:begin 164 :end 282 :contents-begin 164 :contents-end 282 :post-= blank 0 :post-affiliated 164 :parent nil)))) (link (:type "gnus" :path "gma= ne.emacs.orgmode#87k3edcbe5.fsf@alphaville.bos.redhat.com" :raw-link "gnus:= gmane.emacs.orgmode#87k3edcbe5.fsf@alphaville.bos.redhat.com" :application = nil :search-option nil :begin 164 :end 282 :contents-begin 233 :contents-en= d 280 :post-blank 0 :parent (paragraph (:begin 164 :end 282 :contents-begin= 164 :contents-end 282 :post-blank 0 :post-affiliated 164 :parent nil))))))= ...)) 0) (memq (aref org-element--cache 0) cl-struct-avl-tree--tags) (and (memq (aref org-element--cache 0) cl-struct-avl-tree--tags)) (or (and (memq (aref org-element--cache 0) cl-struct-avl-tree--tags)) (er= ror "%s accessing a non-%s" (quote avl-tree--dummyroot) (quote avl-tree-))) (progn (or (and (memq (aref org-element--cache 0) cl-struct-avl-tree--tag= s)) (error "%s accessing a non-%s" (quote avl-tree--dummyroot) (quote avl-t= ree-))) (aref org-element--cache 1)) (aref (progn (or (and (memq (aref org-element--cache 0) cl-struct-avl-tre= e--tags)) (error "%s accessing a non-%s" (quote avl-tree--dummyroot) (quote= avl-tree-))) (aref org-element--cache 1)) 0) (progn (aref (progn (or (and (memq (aref org-element--cache 0) cl-struct-= avl-tree--tags)) (error "%s accessing a non-%s" (quote avl-tree--dummyroot)= (quote avl-tree-))) (aref org-element--cache 1)) 0)) (let ((node (progn (aref (progn (or (and ...) (error "%s accessing a non-= %s" ... ...)) (aref org-element--cache 1)) 0))) last) (catch (quote found) = (while node (let* ((element (progn (aref node 2))) (beg (org-element-proper= ty :begin element))) (cond ((< key beg) (setq node (progn ...))) ((=3D key = beg) (if (memq ... ...) (setq last ... node ...) (throw ... ...))) (t (setq= last (progn ...) node (progn ...)))))) last)) (if (not (wholenump key)) (gethash key org-element--cache-objects) (let (= (node (progn (aref (progn (or ... ...) (aref org-element--cache 1)) 0))) la= st) (catch (quote found) (while node (let* ((element (progn ...)) (beg (org= -element-property :begin element))) (cond ((< key beg) (setq node ...)) ((= =3D key beg) (if ... ... ...)) (t (setq last ... node ...))))) last))) (progn (if (and (not ignore-changes) (org-element--cache-pending-changes-= p)) (progn (org-element--cache-sync (current-buffer)))) (if (not (wholenump= key)) (gethash key org-element--cache-objects) (let ((node (progn (aref (p= rogn ... ...) 0))) last) (catch (quote found) (while node (let* ((element .= ..) (beg ...)) (cond (... ...) (... ...) (t ...)))) last)))) (if (and org-element-use-cache org-element--cache) (progn (if (and (not i= gnore-changes) (org-element--cache-pending-changes-p)) (progn (org-element-= -cache-sync (current-buffer)))) (if (not (wholenump key)) (gethash key org-= element--cache-objects) (let ((node (progn (aref ... 0))) last) (catch (quo= te found) (while node (let* (... ...) (cond ... ... ...))) last))))) org-element-cache-get(0 t) (let* ((beg (aref org-element--cache-status 1)) (element (org-element-cac= he-get (1- beg) t))) (if (not element) beg (catch (quote exit) (let ((up el= ement)) (while (setq up (org-element-property :parent up)) (if (and (memq .= .. ...) (<=3D ... beg) (> ... end)) (throw (quote exit) (progn ... ...))) (= setq element up)) (if (< (org-element-property :end element) beg) (org-elem= ent-property :end element) (org-element-property :begin element)))))) (let ((beg (let* ((beg (aref org-element--cache-status 1)) (element (org-= element-cache-get (1- beg) t))) (if (not element) beg (catch (quote exit) (= let (...) (while ... ... ...) (if ... ... ...))))))) (while (let ((node (pr= ogn (aref (progn ... ...) 0))) data) (while node (let* ((element (progn ...= )) (pos (org-element-property :begin element))) (cond ((< pos beg) (setq no= de ...)) ((> pos beg) (setq data ... node ...)) (t (setq data ... node nil)= )))) (cond ((not data) (throw (quote escape) t)) ((> (org-element-property = :begin data) end) nil) (t (setq end (max (1- ...) end)) (avl-tree-delete or= g-element--cache data nil t)))))) (let ((inhibit-quit t) (offset (aref org-element--cache-status 3)) (end (= aref org-element--cache-status 2))) (let ((beg (let* ((beg (aref org-elemen= t--cache-status 1)) (element (org-element-cache-get ... t))) (if (not eleme= nt) beg (catch (quote exit) (let ... ... ...)))))) (while (let ((node (prog= n (aref ... 0))) data) (while node (let* ((element ...) (pos ...)) (cond (.= .. ...) (... ...) (t ...)))) (cond ((not data) (throw (quote escape) t)) ((= > (org-element-property :begin data) end) nil) (t (setq end (max ... end)) = (avl-tree-delete org-element--cache data nil t)))))) (if (zerop offset) nil= (catch (quote exit) (avl-tree-mapc (function (lambda (data) (if (<=3D ... = end) (throw ... t) (org-element--cache-shift-positions data offset) (progn = ...)))) org-element--cache (quote reverse))))) (catch (quote escape) (let ((inhibit-quit t) (offset (aref org-element--c= ache-status 3)) (end (aref org-element--cache-status 2))) (let ((beg (let* = ((beg ...) (element ...)) (if (not element) beg (catch ... ...))))) (while = (let ((node (progn ...)) data) (while node (let* (... ...) (cond ... ... ..= .))) (cond ((not data) (throw ... t)) ((> ... end) nil) (t (setq end ...) (= avl-tree-delete org-element--cache data nil t)))))) (if (zerop offset) nil = (catch (quote exit) (avl-tree-mapc (function (lambda (data) (if ... ... ...= ...))) org-element--cache (quote reverse)))))) (progn (catch (quote escape) (let ((inhibit-quit t) (offset (aref org-ele= ment--cache-status 3)) (end (aref org-element--cache-status 2))) (let ((beg= (let* (... ...) (if ... beg ...)))) (while (let ((node ...) data) (while n= ode (let* ... ...)) (cond (... ...) (... nil) (t ... ...))))) (if (zerop of= fset) nil (catch (quote exit) (avl-tree-mapc (function (lambda ... ...)) or= g-element--cache (quote reverse)))))) (org-element--cache-cancel-changes)) (if (org-element--cache-pending-changes-p) (progn (catch (quote escape) (= let ((inhibit-quit t) (offset (aref org-element--cache-status 3)) (end (are= f org-element--cache-status 2))) (let ((beg (let* ... ...))) (while (let (.= .. data) (while node ...) (cond ... ... ...)))) (if (zerop offset) nil (cat= ch (quote exit) (avl-tree-mapc (function ...) org-element--cache (quote rev= erse)))))) (org-element--cache-cancel-changes))) (save-current-buffer (set-buffer buffer) (if (org-element--cache-pending-= changes-p) (progn (catch (quote escape) (let ((inhibit-quit t) (offset (are= f org-element--cache-status 3)) (end (aref org-element--cache-status 2))) (= let ((beg ...)) (while (let ... ... ...))) (if (zerop offset) nil (catch (q= uote exit) (avl-tree-mapc ... org-element--cache ...))))) (org-element--cac= he-cancel-changes)))) (progn (save-current-buffer (set-buffer buffer) (if (org-element--cache-p= ending-changes-p) (progn (catch (quote escape) (let ((inhibit-quit t) (offs= et ...) (end ...)) (let (...) (while ...)) (if (zerop offset) nil (catch ..= . ...)))) (org-element--cache-cancel-changes))))) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer= ) (if (org-element--cache-pending-changes-p) (progn (catch (quote escape) (= let (... ... ...) (let ... ...) (if ... nil ...))) (org-element--cache-canc= el-changes)))))) 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 500000 nil org-element--cache-sync (#>) idle 0]) --=-=-= Content-Type: text/plain -- Nick --=-=-=--