emacs-wiki-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[emacs-wiki-discuss] REALLY annoying bug in planner-muse (LONG backtrace


From: Paul Lussier
Subject: [emacs-wiki-discuss] REALLY annoying bug in planner-muse (LONG backtrace incl)
Date: Thu, 17 Nov 2005 11:22:37 -0500
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux)

mwolson  et al,

I have the following line in a planner page:

Kerberos                |  0:55:54      | 14.2% | Fix kerberos {{Tasks:911}} (2)

Which, not accounting for the mark-up characters of [ and ] is EXACTLY
80 characters long, (something tells me at this point you probably
know where I'm going with this ;) which happens to be exactly the
width of my frame.

Starting at the top of the buffer, neither C-n *nor* the down arrow
key are able to move point past this line.  Using M-> and going up
workk just fine.  Additionally, I suspect this line of being the
instigator in M-X plan going into an endless loop :

   gettimeofday({1132243006, 295791}, NULL) = 0
   brk(0x8c6c000)                          = 0x8c6c000
   brk(0x8c70000)                          = 0x8c70000
   brk(0x8c74000)                          = 0x8c74000
   brk(0x8c79000)                          = 0x8c79000
   brk(0x8c7d000)                          = 0x8c7d000
   brk(0x8c81000)                          = 0x8c81000
   gettimeofday({1132243006, 460005}, NULL) = 0
   gettimeofday({1132243006, 594072}, NULL) = 0
   brk(0x8c85000)                          = 0x8c85000
   brk(0x8c8a000)                          = 0x8c8a000
   brk(0x8c8e000)                          = 0x8c8e000
   gettimeofday({1132243006, 752105}, NULL) = 0
   gettimeofday({1132243006, 885685}, NULL) = 0
   gettimeofday({1132243007, 38530}, NULL) = 0
   gettimeofday({1132243007, 171502}, NULL) = 0
   gettimeofday({1132243007, 333215}, NULL) = 0

as seen by strace on emacs.  The emacs buffer never comes back from
M-x plan unless I C-g out of it. Enabling toggle-debug-on-(quit,
error) shows me this:

Debugger entered--Lisp error: (quit)
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (t))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (nil t))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((concat "^. [^ ]+ [^ ]+ " (regexp-quote ...) "\\(" 
(regexp-quote ...) "\\)$") nil t))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (re-search-forward (concat "^. [^ ]+ [^ ]+ " (regexp-quote 
...) "\\(" (regexp-quote ...) "\\)$") nil t))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((re-search-forward (concat "^. [^ ]+ [^ ]+ " ... "\\(" ... 
"\\)$") nil t) (replace-match (ad-get-arg 0) t t nil 1)))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (while (re-search-forward (concat "^. [^ ]+ [^ ]+ " ... "\\(" 
... "\\)$") nil t) (replace-match (ad-get-arg 0) t t nil 1)))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((while (re-search-forward ... nil t) (replace-match ... t t 
nil 1)) (save-buffer) (kill-buffer (current-buffer))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((goto-char (point-min)) (while (re-search-forward ... nil t) 
(replace-match ... t t nil 1)) (save-buffer) (kill-buffer (current-buffer))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((find-file-noselect timeclock-file) (goto-char (point-min)) 
(while (re-search-forward ... nil t) (replace-match ... t t nil 1)) 
(save-buffer) (kill-buffer (current-buffer))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (with-current-buffer (find-file-noselect timeclock-file) 
(goto-char (point-min)) (while (re-search-forward ... nil t) (replace-match ... 
t t nil 1)) (save-buffer) (kill-buffer (current-buffer))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((with-current-buffer (find-file-noselect timeclock-file) 
(goto-char ...) (while ... ...) (save-buffer) (kill-buffer ...))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (ad-do-it (with-current-buffer (find-file-noselect 
timeclock-file) (goto-char ...) (while ... ...) (save-buffer) (kill-buffer 
...))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] ((when (string= ... planner-timeclock-current-task) (setq 
planner-timeclock-current-task ...)) ad-do-it (with-current-buffer 
(find-file-noselect timeclock-file) (goto-char ...) (while ... ...) 
(save-buffer) (kill-buffer ...))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (((info ...)) (when (string= ... 
planner-timeclock-current-task) (setq planner-timeclock-current-task ...)) 
ad-do-it (with-current-buffer (find-file-noselect timeclock-file) (goto-char 
...) (while ... ...) (save-buffer) (kill-buffer ...))))
  ad-substitute-tree(#[(form) "�=‡" [form ad-do-it] 2] #[(form) "‡" 
[around-form] 1] (let ((info ...)) (when (string= ... 
planner-timeclock-current-task) (setq planner-timeclock-current-task ...)) 
ad-do-it (with-current-buffer (find-file-noselect timeclock-file) (goto-char 
...) (while ... ...) (save-buffer) (kill-buffer ...))))
  ad-assemble-advised-definition(function (description) "$ad-doc: 
planner-edit-task-description$" (interactive (list (let* ... ... ...))) 
(ad-Orig-planner-edit-task-description description) nil ((planner-appt-task nil 
t (advice lambda nil "Update the appointment as well." ... ... ... ...)) 
(planner-timeclock nil t (advice lambda nil "Update the timelog as well. 
Warning! Do not have duplicate tasks!" ...))) nil)
  ad-make-advised-definition(planner-edit-task-description)
  ad-activate-advised-definition(planner-edit-task-description nil)
  ad-activate(planner-edit-task-description)
  (lambda (args) (apply (function ad-enable-advice) args) (ad-activate (car 
args)))((planner-edit-task-description around planner-appt-task))
  mapcar((lambda (args) (apply (function ad-enable-advice) args) (ad-activate 
(car args))) ((planner-create-task-from-info around planner-appt-task) 
(planner-edit-task-description around planner-appt-task) 
(planner-copy-or-move-task around planner-appt-task) (plan around 
planner-appt-task) (planner-id-update-tasks-on-page around planner-appt-task) 
(planner-update-task around planner-appt-task) (planner-delete-task before 
planner-appt-task) (planner-task-done before planner-appt-task) 
(planner-task-cancelled before planner-appt-task)))
  planner-appt-enable-all-advice()
  (unwind-protect (progn (planner-appt-disable-all-advice) 
(planner-appt-debug-message "all advice disabled") (if ... ... ...)) 
(planner-appt-enable-all-advice) (planner-appt-debug-message "all advice 
enabled"))
  (with-planner-appt-task-advice-disabled (if (planner-appt-task-nagging-p ...) 
(progn ... ...) (unless ... ...)))
  (let* ((info ...) (appt ...) (time ...)) 
(with-planner-appt-task-advice-disabled (if ... ... ...)))
  (cond ((not --planner-appt-planning) (let ... ...)) (t (let* ... ...)))
  (progn (planner-appt-debug-message "*** called advice on 
planner-copy-or-move-task; " (if --planner-appt-planning "in plan" "not in 
plan")) (cond (... ...) (t ...)))
  (let (ad-return-value) (progn (planner-appt-debug-message "*** called advice 
on planner-copy-or-move-task; " ...) (cond ... ...)) ad-return-value)
  planner-copy-or-move-task("2005.11.17")
  (if (planner-copy-or-move-task date) (progn (setq count ...)))
  (when (planner-copy-or-move-task date) (setq count (1+ count)))
  (condition-case err (when (planner-copy-or-move-task date) (setq count ...)) 
(error (unless ... ... ...) (forward-line -1) nil))
  (if (looking-at "^#?\\([A-C]\\)\\([0-9]*\\)\\s-+\\([^XC]\\)\\s-+\\(.+\\)") 
(condition-case err (when ... ...) (error ... ... nil)) (forward-line -1))
  (while (not (bobp)) (goto-char (planner-line-beginning-position)) (if 
(looking-at "^#?\\([A-C]\\)\\([0-9]*\\)\\s-+\\([^XC]\\)\\s-+\\(.+\\)") 
(condition-case err ... ...) (forward-line -1)))
  (save-restriction (narrow-to-region (and ... ...) (and ... ...)) (when 
planner-add-task-at-end-flag (reverse-region ... ...)) (goto-char (point-max)) 
(while (not ...) (goto-char ...) (if ... ... ...)) (when 
planner-add-task-at-end-flag (reverse-region ... ...)) (when (and ... ... ... 
...) (message ... error-count)))
  (save-excursion (save-restriction (narrow-to-region ... ...) (when 
planner-add-task-at-end-flag ...) (goto-char ...) (while ... ... ...) (when 
planner-add-task-at-end-flag ...) (when ... ...)))
  (let ((planner-tasks-file-behavior nil)) (save-excursion (save-restriction 
... ... ... ... ... ...)))
  (let ((start ...) (finish ...) (buffer ...) (error-count 0) (count 0) 
(live-buffers ...)) (let (...) (save-excursion ...)) (when 
planner-tasks-file-behavior (planner-save-buffers live-buffers)) (set-buffer 
buffer) count)
  planner-copy-or-move-region(1 3888 "2005.11.17" t)
  (let ((planner-tasks-file-behavior nil)) (planner-copy-or-move-region 
(point-min) (point-max) (planner-today) t))
  (progn (let (...) (planner-copy-or-move-region ... ... ... t)) (unless 
(buffer-modified-p) (kill-buffer ...)))
  (if (not (equal today ...)) (progn (let ... ...) (unless ... ...)))
  (when (not (equal today ...)) (let (...) (planner-copy-or-move-region ... ... 
... t)) (unless (buffer-modified-p) (kill-buffer ...)))
  (while names (planner-find-file (car names)) (when (not ...) (let ... ...) 
(unless ... ...)) (setq names (cdr names)))
  (progn (while names (planner-find-file ...) (when ... ... ...) (setq names 
...)))
  (if force-days (progn (while names ... ... ...)))
  (when force-days (while names (planner-find-file ...) (when ... ... ...) 
(setq names ...)))
  (let* ((today ...) (names ...) (today-buffer ...) 
(planner-tasks-file-behavior ...) (planner-use-other-window nil) (live-buffers 
...)) (when (and ... ...) (setcdr ... nil)) (when force-days (while names ... 
... ...)) (if (or planner-carry-tasks-forward ... ...) (planner-goto-today) 
(planner-goto ...)) (when planner-tasks-file-behavior (planner-save-buffers 
live-buffers)))
  (progn (unless force-days (setq force-days ...)) (when (and ... ...) (setq 
force-days t)) (planner-goto-today) (let* (... ... ... ... ... ...) (when ... 
...) (when force-days ...) (if ... ... ...) (when planner-tasks-file-behavior 
...)))
  (if planner-use-day-pages (progn (unless force-days ...) (when ... ...) 
(planner-goto-today) (let* ... ... ... ... ...)) (planner-find-file (or 
planner-default-page planner-initial-page)))
  ad-Orig-plan(nil)
  (setq ad-return-value (ad-Orig-plan force-days))
  (let ((--planner-appt-planning t)) (setq ad-return-value (ad-Orig-plan 
force-days)))
  (progn (planner-appt-debug-message "*** called advice on plan") (let (...) 
(setq ad-return-value ...)))
  (let (ad-return-value) (progn (planner-appt-debug-message "*** called advice 
on plan") (let ... ...)) ad-return-value)
  plan(nil)
  call-interactively(plan)
  execute-extended-command(nil)
  call-interactively(execute-extended-command)

Any ideas?
-- 

Seeya,
Paul





reply via email to

[Prev in Thread] Current Thread [Next in Thread]