Hello

I've come across what seems to be a bug in org-element-cache handling.

To reproduce:
1) create a level 1 heading (in my case: "CAPTURE") and a level 2 heading
(in my case: "CAPTURE-TEST")
2) create a similar template to file tasks under a level-2 heading:
("x" "Todo (test)" entry
(file+olp "~/Workcloud/org/WORK.org" "CAPTURE" "CAPTURE-TEST")
"* TODO %^{Task Description}"
:prepend t)
3) create a task using this template (x)
4) while in the narrowed buffer, try to tag the task using C-c C-q
(org-set-tags-command)

This will hang. Pressing C-g helps you recover, the stack trace being
Debugger entered--Lisp error: (quit)
  #f(compiled-function () #<bytecode 0x1321472668e93f>)()
  org-element--parse-to(77445)
  org-element-cache-map(#f(compiled-function (el) #<bytecode
0x184aaa442bea9805>))
  org-get-buffer-tags()
  org-set-tags-command(nil)
  funcall-interactively(org-set-tags-command nil)
  call-interactively(org-set-tags-command nil nil)
  command-execute(org-set-tags-command)

Disabling the cache with (setq org-element-use-cache nil) solves the
problem.
As does dropping "CAPTURE-TEST" in the template (i.e. putting the task
under a level-1 heading instead of level-2).

Relevant Reddit threat:
https://www.reddit.com/r/orgmode/comments/13lwu2o/orgmode_starting_to_be_way_more_buggy/?s=8
)

HTH,
-Patrick

P.S. I am not subscribed to the mailing list, so please cc: me if necessary.

------------------------------------------------------------------------

Emacs  : GNU Emacs 28.2 (build 1, aarch64-apple-darwin22.4.0, NS
appkit-2299.50 Version 13.3.1 (a) (Build 22E772610a))
 of 2023-05-10
Package: Org mode version 9.6.6 ( @ /Users/pu/.emacs.d/elpa/org-9.6.6/)

current state:
==============
(setq
 org-link-elisp-confirm-function 'yes-or-no-p
 org-bibtex-headline-format-function #[257 "\300 \236A\207" [:title] 3
"\n\n(fn ENTRY)"]
 org-agenda-custom-commands '(("q" . "PU's views")
     ("qq" "PU's view"
      ((todo "WAIT"
((org-agenda-skip-function
  '(org-agenda-skip-entry-if 'scheduled))
 (org-agenda-prefix-format '((todo . ""))))
)
(todo "DELG"
((org-agenda-skip-function
  '(org-agenda-skip-entry-if 'scheduled))
 (org-agenda-prefix-format '((todo . ""))))
)
(todo "TODO"
((org-agenda-skip-function
  '(org-agenda-skip-entry-if 'scheduled))
 (org-agenda-prefix-format '((todo . ""))))
)
(agenda ""
((org-agenda-span 35)
 (org-agenda-prefix-format '((agenda . ""))))
)
nil ("~/Workcloud/org/agenda.txt"))
      )
     )
 org-load-hook '((lambda nil (setq org-element-use-cache nil)
 (setq org-startup-with-inline-images t)
 (setq org-element--cache-self-verify-frequency 0.01)
 (setq org-hide-leading-stars t)
 (setq org-tags-sort-function 'org-string-collate-lessp)
 (setq org-priority-start-cycle-with-default nil)
 (setq org-refile-targets '((org-agenda-files :maxlevel . 9)))
 (setq org-outline-path-complete-in-steps nil) (setq org-log-into-drawer t)
 (setq org-reverse-note-order t) (setq org-return-follows-link t)
 (setq org-tags-column -90)
 (setq org-todo-keyword-faces
  '(("WAIT" :foreground "magenta") ("TODO" :foreground "red")
    ("DELG" :foreground "orange") ("DONE" :foreground "grey"))
  )
 (setq calendar-week-start-day 1) (setq org-todo-fast-selection t)
 (setq org-ellipsis "……") (setq org-startup-indented nil)
 (setq org-adapt-indentation t) (setq org-deadline-warning-days 0)
 (setq org-todo-repeat-to-state "TODO")
 (if work
  (progn (define-key org-mode-map " a" 'org-agenda)
   (setq org-agenda-files '("~/Workcloud/org/WORK.org"))
   (setq org-agenda-skip-scheduled-if-done t)
   (setq org-agenda-skip-scheduled-if-deadline-is-shown t)
   (setq org-agenda-skip-scheduled-if-deadline-if-done t)
   (setq org-agenda-use-time-grid nil)
   (setq org-agenda-show-future-repeats nil)
   (setq org-agenda-start-with-follow-mode t)
   (add-hook 'org-agenda-mode-hook
    #'(lambda nil
(define-key org-agenda-mode-map "\360" 'org-agenda-backward-block)
(define-key org-agenda-mode-map "\356" 'org-agenda-forward-block))
    )
   (setq org-agenda-sorting-strategy
    '((agenda priority-down todo-state-up alpha-up)
      (todo priority-down todo-state-up category-keep)
      (tags priority-down category-keep) (search category-keep))
    )
   (setq org-agenda-custom-commands
    '(("q" . "PU's views")
      ("qq" "PU's view"
((todo "WAIT"
 ((org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled))
  (org-agenda-prefix-format '((todo . ""))))
 )
(todo "DELG"
 ((org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled))
  (org-agenda-prefix-format '((todo . ""))))
 )
(todo "TODO"
 ((org-agenda-skip-function '(org-agenda-skip-entry-if 'scheduled))
  (org-agenda-prefix-format '((todo . ""))))
 )
(agenda ""
 ((org-agenda-span 35) (org-agenda-prefix-format '((agenda . "")))))
nil ("~/Workcloud/org/agenda.txt"))
)
      )
    )
   (global-set-key (kbd "<f6>") 'org-capture)
   (setq org-capture-templates
    '(("t" "Todo (work)" entry
(file+olp "~/Workcloud/org/WORK.org" "CAPTURE")
"* TODO %^{Task Description}" :prepend t)
      ("n" "Note (work)" entry
(file+olp "~/Workcloud/org/WORK.org" "CAPTURE")
"* %^{Note Description}" :prepend t)
      ("x" "Todo (test)" entry
(file+olp "~/Workcloud/org/WORK.org" "CAPTURE" "CAPTURE-TEST")
"* TODO %^{Task Description}" :prepend t)
      )
    )
   )
  )
 )
)
 org-log-into-drawer t
 org-agenda-skip-scheduled-if-done t
 org-agenda-files '("~/Workcloud/org/WORK.org")
 org-persist-after-read-hook '(org-element--cache-persist-after-read)
 org-refile-targets '((org-agenda-files :maxlevel . 9))
 org-export-before-parsing-hook '(org-attach-expand-links)
 org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
 org-archive-hook '(org-attach-archive-delete-maybe)
 org-cycle-hook '(org-cycle-hide-archived-subtrees
org-cycle-show-empty-lines
 org-cycle-optimize-window-after-visibility-change
 org-cycle-display-inline-images)
 org-persist-before-read-hook '(org-element--cache-persist-before-read)
 org-mode-hook '(#[0 "\300\301\302\303\304$\207"
  [add-hook change-major-mode-hook org-fold-show-all append local] 5]
#[0 "\300\301\302\303\304$\207"
  [add-hook change-major-mode-hook org-babel-show-result-all append local]
  5]
org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-ellipsis "……"
 org-confirm-shell-link-function 'yes-or-no-p
 org-agenda-skip-scheduled-if-deadline-is-shown t
 org-adapt-indentation t
 outline-isearch-open-invisible-function 'outline-isearch-open-invisible
 org-tags-sort-function 'org-string-collate-lessp
 org-agenda-sorting-strategy '((agenda priority-down todo-state-up alpha-up)
      (todo priority-down todo-state-up category-keep)
      (tags priority-down category-keep) (search category-keep))
 org-agenda-mode-hook '((lambda nil
(define-key org-agenda-mode-map "\360" 'org-agenda-backward-block)
(define-key org-agenda-mode-map "\356" 'org-agenda-forward-block))
)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer
org-src-mode-configure-edit-buffer)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-hide-leading-stars t
 org-deadline-warning-days 0
 org-speed-command-hook '(org-speed-command-activate
org-babel-speed-command-activate)
 org-fold-core-isearch-open-function 'org-fold-core--isearch-reveal
 org-persist-before-write-hook '(org-element--cache-persist-before-write)
 org-tab-first-hook '(org-babel-hide-result-toggle-maybe
org-babel-header-arg-expand)
 org-link-shell-confirm-function 'yes-or-no-p
 org-babel-pre-tangle-hook '(save-buffer)
 org-agenda-loop-over-headlines-in-active-region nil
 org-todo-keyword-faces '(("WAIT" :foreground "magenta") ("TODO"
:foreground "red")
 ("DELG" :foreground "orange") ("DONE" :foreground "grey"))
 org-occur-hook '(org-first-headline-recenter)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-link-parameters '(("attachment" :follow org-attach-follow :complete
org-attach-complete-link)
      ("id" :follow org-id-open)
      ("eww" :follow org-eww-open :store org-eww-store-link)
      ("rmail" :follow org-rmail-open :store org-rmail-store-link)
      ("mhe" :follow org-mhe-open :store org-mhe-store-link)
      ("irc" :follow org-irc-visit :store org-irc-store-link :export
org-irc-export)
      ("info" :follow org-info-open :export org-info-export :store
org-info-store-link :insert-description
org-info-description-as-command)
      ("gnus" :follow org-gnus-open :store org-gnus-store-link)
      ("docview" :follow org-docview-open :export org-docview-export :store
org-docview-store-link)
      ("bibtex" :follow org-bibtex-open :store org-bibtex-store-link)
      ("bbdb" :follow org-bbdb-open :export org-bbdb-export :complete
org-bbdb-complete-link :store org-bbdb-store-link)
      ("w3m" :store org-w3m-store-link)
      ("doi" :follow org-link-doi-open :export org-link-doi-export)
      ("file+sys") ("file+emacs") ("shell" :follow org-link--open-shell)
      ("news" :follow
#[514 "\301\300\302 Q \"\207" ["news" browse-url ":"] 6
 "\n\n(fn URL ARG)"]
)
      ("mailto" :follow
#[514 "\301\300\302 Q \"\207" ["mailto" browse-url ":"] 6
 "\n\n(fn URL ARG)"]
)
      ("https" :follow
#[514 "\301\300\302 Q \"\207" ["https" browse-url ":"] 6
 "\n\n(fn URL ARG)"]
)
      ("http" :follow
#[514 "\301\300\302 Q \"\207" ["http" browse-url ":"] 6
 "\n\n(fn URL ARG)"]
)
      ("ftp" :follow
#[514 "\301\300\302 Q \"\207" ["ftp" browse-url ":"] 6
 "\n\n(fn URL ARG)"]
)
      ("help" :follow org-link--open-help :store org-link--store-help)
      ("file" :complete org-link-complete-file)
      ("elisp" :follow org-link--open-elisp))
 org-agenda-start-with-follow-mode t
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-todo-repeat-to-state "TODO"
 org-startup-with-inline-images t
 org-priority-start-cycle-with-default nil
 org-return-follows-link t
 org-outline-path-complete-in-steps nil
 org-tags-column -90
 org-agenda-show-future-repeats nil
 org-reverse-note-order t
 org-agenda-use-time-grid nil
 )

Reply via email to