Gnus development mailing list
 help / color / mirror / Atom feed
* nnimap dying when trying to symbol-name 105
@ 2000-08-30  8:23 Jaakko Kangasharju
  2000-08-30 11:13 ` Simon Josefsson
  0 siblings, 1 reply; 3+ messages in thread
From: Jaakko Kangasharju @ 2000-08-30  8:23 UTC (permalink / raw)



I use nnimap on Gnus 5.8.7 for mailreading.  It had worked fine until
today when it died in the middle of examining my INBOX.  It seems that
it (incorrectly) converts some characters to their ASCII codes and
dies because the codes are not symbols.

I think this is Gnus's fault since I can read my mail with Pine just
fine.

I add the backtrace I got with debug-on-error and imap-log created by
imap.  I don't understand Lisp or IMAP enough to even begin to figure
out what could be wrong.  I'm hoping there is a simple fix or patch to
at least bypass this problem.

;; Backtrace begins

Signaling: (wrong-type-argument symbolp 105)
  symbol-name(105)
  mapcar(symbol-name (= 105 so-8859-1 81 107 ettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta 61 \\Answered \\Flagged \\Deleted \\Draft \\Seen))
  ad-Orig-imap-parse-flag-list()
  (setq ad-return-value (ad-Orig-imap-parse-flag-list))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-parse-flag-list)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-parse-flag-list()
  ad-Orig-imap-parse-response()
  (setq ad-return-value (ad-Orig-imap-parse-response))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-parse-response)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-parse-response()
  ad-Orig-imap-arrival-filter(#<process imap> "* 47 EXISTS\r\n* 0 RECENT\r\n* OK [UIDVALIDITY 952888598] UID validity status\r\n* OK [UIDNEXT 5423] Predicted next UID\r\n* FLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \\Answered \\Flagged \\Deleted \\Draft \\Seen)\r\n* OK [PERMANENTFLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \\* \\Answered \\Flagged \\Deleted \\Draft \\Seen)] Permanent flags\r\n* OK [UNSEEN 1] first unseen message in /var/spool/mail/jkangash\r\n3 OK [READ-WRITE] SELECT completed\r\n")
  (setq ad-return-value (ad-Orig-imap-arrival-filter proc string))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-arrival-filter proc string)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-arrival-filter(#<process imap> "* 47 EXISTS\r\n* 0 RECENT\r\n* OK [UIDVALIDITY 952888598] UID validity status\r\n* OK [UIDNEXT 5423] Predicted next UID\r\n* FLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \\Answered \\Flagged \\Deleted \\Draft \\Seen)\r\n* OK [PERMANENTFLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \\* \\Answered \\Flagged \\Deleted \\Draft \\Seen)] Permanent flags\r\n* OK [UNSEEN 1] first unseen message in /var/spool/mail/jkangash\r\n3 OK [READ-WRITE] SELECT completed\r\n")
  accept-process-output(#<process imap> 1)
  ad-Orig-imap-wait-for-tag(3 nil)
  (setq ad-return-value (ad-Orig-imap-wait-for-tag tag buffer))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-wait-for-tag tag buffer)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-wait-for-tag(3 nil)
  ad-Orig-imap-send-command-wait("SELECT \"INBOX\"" nil)
  (setq ad-return-value (ad-Orig-imap-send-command-wait command buffer))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-send-command-wait command buffer)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-send-command-wait("SELECT \"INBOX\"")
  ad-Orig-imap-mailbox-select-1("INBOX" nil)
  (setq ad-return-value (ad-Orig-imap-mailbox-select-1 mailbox examine))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-mailbox-select-1 mailbox examine)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-mailbox-select-1("INBOX" nil)
  ad-Orig-imap-mailbox-select("INBOX" nil nil)
  (setq ad-return-value (ad-Orig-imap-mailbox-select mailbox examine buffer))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-imap-mailbox-select mailbox examine buffer)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  imap-mailbox-select("INBOX")
  ad-Orig-nnimap-possibly-change-group("INBOX" nil)
  (setq ad-return-value (ad-Orig-nnimap-possibly-change-group group server))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-nnimap-possibly-change-group group server)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  nnimap-possibly-change-group("INBOX")
  ad-Orig-nnimap-split-articles(nil "mail.cs.helsinki.fi")
  (setq ad-return-value (ad-Orig-nnimap-split-articles group server))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-nnimap-split-articles group server)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  nnimap-split-articles(nil "mail.cs.helsinki.fi")
  ad-Orig-nnimap-request-scan(nil "mail.cs.helsinki.fi")
  (setq ad-return-value (ad-Orig-nnimap-request-scan group server))
  (let ((trace-level ...) (trace-buffer ...)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (if ... ...) (insert ...)) (setq ad-return-value (ad-Orig-nnimap-request-scan group server)) (save-excursion (set-buffer trace-buffer) (goto-char ...) (insert ...)))
  (let (ad-return-value) (let (... ...) (save-excursion ... ... ... ...) (setq ad-return-value ...) (save-excursion ... ... ...)) ad-return-value)
  nnimap-request-scan(nil "mail.cs.helsinki.fi")
  gnus-request-scan(nil (nnimap "mail.cs.helsinki.fi"))
  gnus-read-active-file-1((nnimap "mail.cs.helsinki.fi") nil)
  gnus-read-active-file(nil nil)
  gnus-setup-news(nil nil nil)
  byte-code("\b„\x0e
  gnus-1(nil nil nil)
  gnus(nil)
  call-interactively(gnus)
  execute-extended-command(nil)
* call-interactively(execute-extended-command)

;; Backtrace ends

;; imap-log begins

* OK porsta.cs.Helsinki.FI IMAP4rev1 v12.264-pk2 server ready
1 CAPABILITY
* CAPABILITY IMAP4 IMAP4REV1 NAMESPACE IDLE SCAN SORT MAILBOX-REFERRALS LOGIN-REFERRALS AUTH=LOGIN THREAD=ORDEREDSUBJECT
1 OK CAPABILITY completed
2 LOGIN "jkangash" "********"
2 OK LOGIN completed
3 SELECT "INBOX"
* 47 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 952888598] UID validity status
* OK [UIDNEXT 5423] Predicted next UID
* FLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \Answered \Flagged \Deleted \Draft \Seen)
* OK [PERMANENTFLAGS (=?iso-8859-1?Q?kettutyt=F6t=2C_Sanna_Sillanp=E4=E4=2C_IKL=2C_Jammu_Silta?= \* \Answered \Flagged \Deleted \Draft \Seen)] Permanent flags
* OK [UNSEEN 1] first unseen message in /var/spool/mail/jkangash
3 OK [READ-WRITE] SELECT completed

;; imap-log ends

-- 
Jaakko Kangasharju, University of Helsinki
Education is what remains after one has forgotten everything he
learned in school
 - Albert Einstein



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: nnimap dying when trying to symbol-name 105
  2000-08-30  8:23 nnimap dying when trying to symbol-name 105 Jaakko Kangasharju
@ 2000-08-30 11:13 ` Simon Josefsson
  2000-09-08 19:26   ` Simon Josefsson
  0 siblings, 1 reply; 3+ messages in thread
From: Simon Josefsson @ 2000-08-30 11:13 UTC (permalink / raw)
  Cc: ding

Jaakko Kangasharju <jkangash@cs.helsinki.fi> writes:

> I add the backtrace I got with debug-on-error and imap-log created by
> imap.

Thanks for the details.

It seem to be some subtleness in `read'.  It's easy to fix, but Emacs
and XEmacs seem to behave differently so I'm not sure what the proper
fix is.

Emacs: (read "(foo?Abar)")  => (foo 65 bar)

XEmacs: (read "(foo?Abar)") => (foo\?Abar)

Could someone shred any light on the matter?

The patch below autodetect the `read' behaviour and take care of the
difference.  It is NOT a proper fix, but you should be able to read
your mail with it while we debug this.

Index: imap.el
===================================================================
RCS file: /usr/local/cvsroot/gnus/lisp/imap.el,v
retrieving revision 1.22
diff -w -u -u -w -r1.22 imap.el
--- imap.el	2000/08/11 17:47:17	1.22
+++ imap.el	2000/08/30 11:09:45
@@ -2183,6 +2183,9 @@
 	pos)
     (while (setq pos (string-match "\\\\" str (and pos (+ 2 pos))))
       (setq str (replace-match "\\\\" nil t str)))
+    (when (= (length (symbol-name (read "A?A"))) 1)
+      (while (setq pos (string-match "\\?" str (and pos (+ 2 pos))))
+	(setq str (replace-match "\\?" nil t str))))
     (mapcar 'symbol-name (read str))))
 
 ;;   envelope        = "(" env-date SP env-subject SP env-from SP env-sender SP




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: nnimap dying when trying to symbol-name 105
  2000-08-30 11:13 ` Simon Josefsson
@ 2000-09-08 19:26   ` Simon Josefsson
  0 siblings, 0 replies; 3+ messages in thread
From: Simon Josefsson @ 2000-09-08 19:26 UTC (permalink / raw)
  Cc: ding

Simon Josefsson <simon@josefsson.org> writes:

> Emacs: (read "(foo?Abar)")  => (foo 65 bar)
> 
> XEmacs: (read "(foo?Abar)") => (foo\?Abar)
>
> Could someone shred any light on the matter?

FYI: In CVS, this function is rewritten not to use `read' at all, so I
don't have to understand/workaround different `read' implementations.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2000-09-08 19:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-08-30  8:23 nnimap dying when trying to symbol-name 105 Jaakko Kangasharju
2000-08-30 11:13 ` Simon Josefsson
2000-09-08 19:26   ` Simon Josefsson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).