I've also just been bitten by this bug, as I was doing my weekly review. I'll try to see if I can write an ECM, but for the record this is what I was doing: I was in an agenda view sorted by the value of a LAST_REVIEW property, and I was repeatedly calling this function on the entries of the view:
#+begin_src emacs-lisp
(defun org-review-insert-last-review (&optional prompt)
"Insert the current date as last review. If prefix argument:
prompt the user for the date. If `org-review-sets-next-date' is
set to `t', also insert a next review date."
(interactive "P")
(let ((ts (if prompt
(concat "<" (org-read-date) ">")
(format-time-string (car org-time-stamp-formats)))))
(org-review-insert-date org-review-last-property-name
org-review-last-timestamp-format
ts)
(when org-review-sets-next-date
(org-review-insert-date
org-review-next-property-name
org-review-next-timestamp-format
(format-time-string (car org-time-stamp-formats)
(org-review-last-planned
ts
(or (org-review-review-delay-prop
(if (equal (buffer-name)
org-agenda-buffer-name)
(or (org-get-at-bol 'org-marker)
(org-agenda-error))
(point)))
org-review-delay)))))))
#+end_src
the `org-review-insert-date` is defined as follows
#+begin_src emacs-lisp
(defun org-review-insert-date (propname fmt date)
"Insert the DATE under property PROPNAME, in the format
specified by FMT."
(org-entry-put
(if (equal (buffer-name) org-agenda-buffer-name)
(or (org-get-at-bol 'org-marker)
(org-agenda-error))
(point))
propname
(cond
((eq fmt 'inactive)
(concat "[" (substring date 1 -1) "]"))
((eq fmt 'active) date)
(t (substring date 1 -1)))))
#+end_src
I could get out of the loop using "ctrl-G" but any further interaction
with the todo buffer (expanding the task to see its properties, or
changing the todo state) would result in further lockup. Restarting
emacs let me do a few more entries (about a dozen) before it locked up
again.
Alan
--
OpenPGP Key ID : 040D0A3B4ED2E5C7
pgpC5w4GYRVZA.pgp
Description: PGP signature
