GNU bug report logs -
#12265
nnimap-find-article-by-message-id mis-using nnimap-change-group
Previous Next
Reported by: Dave Abrahams <dave <at> boostpro.com>
Date: Thu, 23 Aug 2012 18:07:02 UTC
Severity: normal
Tags: fixed
Found in version 5.130006
Fixed in version 24.3
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 12265 in the body.
You can then email your comments to 12265 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bugs <at> gnus.org
:
bug#12265
; Package
gnus
.
(Thu, 23 Aug 2012 18:07:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Dave Abrahams <dave <at> boostpro.com>
:
New bug report received and forwarded. Copy sent to
bugs <at> gnus.org
.
(Thu, 23 Aug 2012 18:07:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Backtrace attached below.
Preliminary analysis:
nnimap-find-article-by-message-id calls nnimap-change-group and
attempts to use its result as a list. nnimap-change-group has no
documented result (please fix!) but it can return t and it's been that
way for a long time.
I haven't done a more complete analysis, but git blame suggests the
problematic commit is:
commit ac8ce21091b89a7a05ad821854f4d3e7ff35a394
Author: Julien Danjou <julien <at> danjou.info>
Date: Thu Jun 14 10:09:04 2012 +0200
Add recent argument to nnimap-find-article-by-message-id
Signed-off-by: Julien Danjou <julien <at> danjou.info>
--8<---------------cut here---------------start------------->8---
Debugger entered--Lisp error: (wrong-type-argument listp t)
cdr(t)
(let ((--cl-dolist-temp-- (cdr (nnimap-change-group group server nil t))) result) (while --cl-dolist-temp-- (setq result (car --cl-dolist-temp--)) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result))) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--))))
(catch (quote --cl-block-nil--) (let ((--cl-dolist-temp-- (cdr (nnimap-change-group group server nil t))) result) (while --cl-dolist-temp-- (setq result (car --cl-dolist-temp--)) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result))) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))))
(cl-block-wrapper (catch (quote --cl-block-nil--) (let ((--cl-dolist-temp-- (cdr (nnimap-change-group group server nil t))) result) (while --cl-dolist-temp-- (setq result (car --cl-dolist-temp--)) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result))) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--))))))
(block nil (let ((--cl-dolist-temp-- (cdr (nnimap-change-group group server nil t))) result) (while --cl-dolist-temp-- (setq result (car --cl-dolist-temp--)) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result))) (setq --cl-dolist-temp-- (cdr --cl-dolist-temp--)))))
(dolist (result (cdr (nnimap-change-group group server nil t))) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result))))
(catch (quote found) (dolist (result (cdr (nnimap-change-group group server nil t))) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result)))))
(let* ((number-of-article (catch (quote found) (dolist (result (cdr (nnimap-change-group group server nil t))) (when (equal "EXISTS" (cadr result)) (throw (quote found) (car result)))))) (sequence (nnimap-send-command "UID SEARCH%s HEADER Message-Id %S" (if (and limit number-of-article) (format " %s:*" (- (string-to-number number-of-article) limit -1)) "") message-id))) (when (nnimap-wait-for-response sequence) (let ((article (car (last (cdr ...))))) (if article (string-to-number article) (when (and limit number-of-article) (nnimap-find-article-by-message-id group server message-id))))))
(save-current-buffer (set-buffer (nnimap-buffer)) (erase-buffer) (let* ((number-of-article (catch (quote found) (dolist (result (cdr ...)) (when (equal "EXISTS" ...) (throw ... ...))))) (sequence (nnimap-send-command "UID SEARCH%s HEADER Message-Id %S" (if (and limit number-of-article) (format " %s:*" (- ... limit -1)) "") message-id))) (when (nnimap-wait-for-response sequence) (let ((article (car (last ...)))) (if article (string-to-number article) (when (and limit number-of-article) (nnimap-find-article-by-message-id group server message-id)))))))
(with-current-buffer (nnimap-buffer) (erase-buffer) (let* ((number-of-article (catch (quote found) (dolist (result (cdr ...)) (when (equal "EXISTS" ...) (throw ... ...))))) (sequence (nnimap-send-command "UID SEARCH%s HEADER Message-Id %S" (if (and limit number-of-article) (format " %s:*" (- ... limit -1)) "") message-id))) (when (nnimap-wait-for-response sequence) (let ((article (car (last ...)))) (if article (string-to-number article) (when (and limit number-of-article) (nnimap-find-article-by-message-id group server message-id)))))))
nnimap-find-article-by-message-id(nil "LocalIMAP" "<m21uixv9m8.fsf <at> boostpro.com>")
nnimap-request-head("<m21uixv9m8.fsf <at> boostpro.com>" nil "LocalIMAP")
gnus-request-head("<m21uixv9m8.fsf <at> boostpro.com>" "INBOX")
gnus-read-header("<m21uixv9m8.fsf <at> boostpro.com>")
gnus-summary-insert-subject("<m21uixv9m8.fsf <at> boostpro.com>")
byte-code("\304 \305.\211.\203-. @.\306!\203&.\307\n!\211.\203&.\310\305\211\211$\210\311\312\313\"\210 A\211.\204 .*\314\315\316\n#\207" [gnus-override-method --cl-dolist-temp-- message-id number gnus-refer-article-methods nil gnus-check-server gnus-summary-insert-subject gnus-summary-select-article throw found t gnus-message 3 "Couldn't fetch article %s"] 6)
gnus-summary-refer-article("<m21uixv9m8.fsf <at> boostpro.com>")
gnus-summary-refer-parent-article(1)
call-interactively(gnus-summary-refer-parent-article nil nil)
--8<---------------cut here---------------end--------------->8---
Ma Gnus v0.6
GNU Emacs 24.1.1 (x86_64-apple-darwin11.4.0, Carbon Version 1.6.0 AppKit 1138.47)
of 2012-06-27 on pluto.luannocracy.com
--
Dave Abrahams
BoostPro Computing Software Development Training
http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
Information forwarded
to
bugs <at> gnus.org
:
bug#12265
; Package
gnus
.
(Wed, 05 Sep 2012 17:33:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 12265 <at> debbugs.gnu.org (full text, mbox):
Dave Abrahams <dave <at> boostpro.com> writes:
> Backtrace attached below.
>
> Preliminary analysis:
>
> nnimap-find-article-by-message-id calls nnimap-change-group and
> attempts to use its result as a list. nnimap-change-group has no
> documented result (please fix!) but it can return t and it's been that
> way for a long time.
You seem to have fixed this one, too. :-)
--
(domestic pets only, the antidote for overdose, milk.)
http://lars.ingebrigtsen.no * Lars Magne Ingebrigtsen
Added tag(s) fixed.
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Wed, 05 Sep 2012 17:33:02 GMT)
Full text and
rfc822 format available.
bug marked as fixed in version 24.3, send any further explanations to
12265 <at> debbugs.gnu.org and Dave Abrahams <dave <at> boostpro.com>
Request was from
Lars Ingebrigtsen <larsi <at> gnus.org>
to
control <at> debbugs.gnu.org
.
(Wed, 05 Sep 2012 17:33:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bugs <at> gnus.org
:
bug#12265
; Package
gnus
.
(Wed, 05 Sep 2012 19:44:02 GMT)
Full text and
rfc822 format available.
Message #15 received at 12265 <at> debbugs.gnu.org (full text, mbox):
on Wed Sep 05 2012, Lars Ingebrigtsen <larsi-AT-gnus.org> wrote:
> You seem to have fixed this one, too. :-)
Yes.
--
Dave Abrahams
BoostPro Computing Software Development Training
http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 04 Oct 2012 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 12 years and 267 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.