Re: Infinite loop in emacs interface
authorRodney Lorrimar <dev@rodney.id.au>
Tue, 17 Jan 2012 18:35:58 +0000 (19:35 +0100)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 17:42:28 +0000 (09:42 -0800)
60/0e2f958dcc089b4c0c20049d404667db846a86 [new file with mode: 0644]

diff --git a/60/0e2f958dcc089b4c0c20049d404667db846a86 b/60/0e2f958dcc089b4c0c20049d404667db846a86
new file mode 100644 (file)
index 0000000..3dd67e2
--- /dev/null
@@ -0,0 +1,170 @@
+Return-Path: <rodney@rodney.id.au>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id E3C61429E5F\r
+       for <notmuch@notmuchmail.org>; Tue, 17 Jan 2012 10:33:54 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: 0\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
+       autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id c0APzlzo2kl7 for <notmuch@notmuchmail.org>;\r
+       Tue, 17 Jan 2012 10:33:54 -0800 (PST)\r
+Received: from rodney.id.au (rodney.id.au [178.79.159.183])\r
+       (using TLSv1 with cipher AES256-SHA (256/256 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id 11565429E3B\r
+       for <notmuch@notmuchmail.org>; Tue, 17 Jan 2012 10:33:54 -0800 (PST)\r
+Received: from 232.26-200-80.adsl-dyn.isp.belgacom.be ([80.200.26.232]\r
+       helo=boekje.home)\r
+       by rodney.id.au with esmtpsa (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:16)\r
+       (Exim 4.77) (envelope-from <rodney@rodney.id.au>)\r
+       id 1RnDqy-0008Cr-I1; Tue, 17 Jan 2012 18:33:52 +0000\r
+From: Rodney Lorrimar <dev@rodney.id.au>\r
+To: Aaron Ecay <aaronecay@gmail.com>, notmuch@notmuchmail.org\r
+Subject: Re: Infinite loop in emacs interface\r
+In-Reply-To: <m2k44qb573.fsf@gmail.com>\r
+References: <87pqei8d0h.fsf@boekje.home> <m2k44qb573.fsf@gmail.com>\r
+User-Agent: Notmuch/0.11 (http://notmuchmail.org) Emacs/24.0.92.1\r
+       (x86_64-pc-linux-gnu)\r
+Date: Tue, 17 Jan 2012 19:35:58 +0100\r
+Message-ID: <87y5t6kwhd.fsf@boekje.home>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain\r
+X-SA-Exim-Connect-IP: 80.200.26.232\r
+X-SA-Exim-Mail-From: rodney@rodney.id.au\r
+X-SA-Exim-Scanned: No (on rodney.id.au); SAEximRunCond expanded to false\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Tue, 17 Jan 2012 18:33:55 -0000\r
+\r
+On Tue, 17 Jan 2012 12:37:52 -0500, Aaron Ecay <aaronecay@gmail.com> wrote:\r
+> After converting the mbox file to Maildir and adding it to my mailstore,\r
+> I cannot reproduce the loop.  (The versions of notmuch and emacs I used\r
+> are close to the ones you have, but not an exact match, so it may be\r
+> something subtle about those versions.  I can investigate\r
+> more carefully if it seems like this is the case.)\r
+\r
+Hi Aaron,\r
+\r
+That's a pity. I am using Julien Danjou's emacs-snapshot package for\r
+debian and actually I only noticed the infinite loop on this thread\r
+after restarting emacs some unknown time after the package was\r
+upgraded. The package was upgraded from 20120105 to 20120111.\r
+\r
+I haven't been using this snapshot of emacs for very long, so possibly\r
+the problem might occur with other threads. To test this thread, I\r
+copied it out of my maildirs with mutt, deleted the original messages,\r
+ran "notmuch new", copied the mbox thread back into my maildirs, then\r
+ran "notmuch new" again, and the problem was still there.\r
+\r
+\r
+> If you do:\r
+> M-x set-variable RET debug-on-quit RET t RET\r
+> then trigger the loop and press C-g, you should get a buffer showing a\r
+> backtrace of the lisp stack.  What does that say?\r
+\r
+I copied 4 backtraces which appear below. I pressed the 'a' key when\r
+viewing the thread, then C-g.\r
+\r
+They were run with notmuch git commit efa5d6cb32. Since then I went back\r
+to 0.11 because it seems like the reply function stopped working.\r
+\r
+\r
+Cheers,\r
+\r
+Rodney\r
+\r
+\r
+Debugger entered--Lisp error: (quit)\r
+  mapc((lambda (del-tag) (setq result-tags (delete del-tag result-tags))) ("inbox"))\r
+  (let ((result-tags (copy-sequence current-tags))) (mapc (lambda (del-tag) (setq result-tags (delete del-tag result-tags))) del-tags) result-tags)\r
+  notmuch-show-del-tags-worker(nil ("inbox"))\r
+  (let* ((current-tags (notmuch-show-get-tags)) (new-tags (notmuch-show-del-tags-worker current-tags toremove))) (unless (equal current-tags new-tags) (apply (quote notmuch-tag) (notmuch-show-get-message-id) (mapcar (lambda (s) (concat "-" s)) toremove)) (notmuch-show-set-tags new-tags)))\r
+  notmuch-show-remove-tag("inbox")\r
+  (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))\r
+  (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next)))))\r
+  (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (cl-block-wrapper (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil))\r
+  (block nil (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (loop do (notmuch-show-remove-tag "inbox") until (not (notmuch-show-goto-message-next)))\r
+  notmuch-show-archive-thread-internal(t)\r
+  notmuch-show-archive-thread()\r
+  call-interactively(notmuch-show-archive-thread nil nil)\r
+\r
+Debugger entered--Lisp error: (quit)\r
+  notmuch-show-move-to-message-top()\r
+  (save-excursion (notmuch-show-move-to-message-top) (get-text-property (point) :notmuch-message-properties))\r
+  notmuch-show-get-message-properties()\r
+  (or props (notmuch-show-get-message-properties))\r
+  (let ((props (or props (notmuch-show-get-message-properties)))) (plist-get props prop))\r
+  notmuch-show-get-prop(:tags)\r
+  notmuch-show-get-tags()\r
+  (let* ((current-tags (notmuch-show-get-tags)) (new-tags (notmuch-show-del-tags-worker current-tags toremove))) (unless (equal current-tags new-tags) (apply (quote notmuch-tag) (notmuch-show-get-message-id) (mapcar (lambda (s) (concat "-" s)) toremove)) (notmuch-show-set-tags new-tags)))\r
+  notmuch-show-remove-tag("inbox")\r
+  (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))\r
+  (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next)))))\r
+  (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (cl-block-wrapper (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil))\r
+  (block nil (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (loop do (notmuch-show-remove-tag "inbox") until (not (notmuch-show-goto-message-next)))\r
+  notmuch-show-archive-thread-internal(t)\r
+  notmuch-show-archive-thread()\r
+  call-interactively(notmuch-show-archive-thread nil nil)\r
+\r
+Debugger entered--Lisp error: (quit)\r
+  notmuch-show-move-to-message-top()\r
+  (save-excursion (notmuch-show-move-to-message-top) (get-text-property (point) :notmuch-message-properties))\r
+  notmuch-show-get-message-properties()\r
+  (or props (notmuch-show-get-message-properties))\r
+  (let ((props (or props (notmuch-show-get-message-properties)))) (plist-get props prop))\r
+  notmuch-show-get-prop(:tags)\r
+  notmuch-show-get-tags()\r
+  (let* ((current-tags (notmuch-show-get-tags)) (new-tags (notmuch-show-del-tags-worker current-tags toremove))) (unless (equal current-tags new-tags) (apply (quote notmuch-tag) (notmuch-show-get-message-id) (mapcar (lambda (s) (concat "-" s)) toremove)) (notmuch-show-set-tags new-tags)))\r
+  notmuch-show-remove-tag("inbox")\r
+  (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))\r
+  (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next)))))\r
+  (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (cl-block-wrapper (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil))\r
+  (block nil (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (loop do (notmuch-show-remove-tag "inbox") until (not (notmuch-show-goto-message-next)))\r
+  notmuch-show-archive-thread-internal(t)\r
+  notmuch-show-archive-thread()\r
+  call-interactively(notmuch-show-archive-thread nil nil)\r
+\r
+Debugger entered--Lisp error: (quit)\r
+  (while (not (setq r (get-text-property (point) :notmuch-message-extent))) (backward-char))\r
+  (save-excursion (while (not (setq r (get-text-property (point) :notmuch-message-extent))) (backward-char)))\r
+  (let (r) (save-excursion (while (not (setq r (get-text-property (point) :notmuch-message-extent))) (backward-char))) r)\r
+  notmuch-show-message-extent()\r
+  (cdr (notmuch-show-message-extent))\r
+  notmuch-show-message-bottom()\r
+  (goto-char (notmuch-show-message-bottom))\r
+  notmuch-show-move-to-message-bottom()\r
+  (let ((start (point))) (notmuch-show-move-to-message-bottom) (if (not (eobp)) t (goto-char start) nil))\r
+  notmuch-show-goto-message-next()\r
+  (not (notmuch-show-goto-message-next))\r
+  (not (not (notmuch-show-goto-message-next)))\r
+  (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))\r
+  (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next)))))\r
+  (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (cl-block-wrapper (catch (quote --cl-block-nil--) (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil))\r
+  (block nil (while (progn (notmuch-show-remove-tag "inbox") (not (not (notmuch-show-goto-message-next))))) nil)\r
+  (loop do (notmuch-show-remove-tag "inbox") until (not (notmuch-show-goto-message-next)))\r
+  notmuch-show-archive-thread-internal(t)\r
+  notmuch-show-archive-thread()\r
+  call-interactively(notmuch-show-archive-thread nil nil)\r