emacs-devel
[Top][All Lists]
Advanced

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

Re: Gnus reads my mail


From: Simon Josefsson
Subject: Re: Gnus reads my mail
Date: Tue, 15 Feb 2005 22:54:48 +0100
User-agent: Gnus/5.110003 (No Gnus v0.3) Emacs/22.0.50 (gnu/linux)

Stefan Monnier <address@hidden> writes:

> Although Gnus did not literally *eat* my email, I find this problem to be
> very serious since it might make me miss important email messages.

Agreed.

> - .../trunk/src/emacs --eval '(setq imap-debug t nnimap-debug t)' -f gnus
> - type in my imap password
> - save *imap-debug* to `imap-log-startup'

It appears the problem is in this part alone.  It is easier to read if
you only enable `imap-log', and paste the result from the *imap-log*
buffer, but the same information is stored in the debug buffers too,
so I'm trying to read them below:

> | | | | | | 7 -> imap-arrival-filter: proc=#<process imap> string="* STATUS 
> emacs (UNSEEN 35 UIDNEXT 22270 UIDVALIDITY 1062436086)


Ok, here your server reports that there are 35 unseen messages in the
emacs group.  Good.

> | | | | | 6 -> imap-send-command: command="EXAMINE \"emacs\"" buffer=nil

> | | | | | | 7 <- imap-send-command-1: nil
> | | | | | 6 <- imap-send-command: 26
> | | | | | 6 -> imap-wait-for-tag: tag=26 buffer=nil
> | | | | | | 7 -> imap-arrival-filter: proc=#<process imap> string="* 5415 
> EXISTS

> * 0 RECENT

> * OK [UIDVALIDITY 1062436086] UID validity status

> * OK [UIDNEXT 22270] Predicted next UID

> * FLAGS (gnus-expire gnus-forward \\Answered \\Flagged \\Deleted \\Draft 
> \\Seen)

> * OK [PERMANENTFLAGS ()] Permanent flags

> * OK [UNSEEN 5381] first unseen message in 
> /export/home/mail/monnier/Mail/emacs

> 26 OK [READ-ONLY] EXAMINE completed


And here Gnus enter the group read-only (EXAMINE).

> | | | | 5 -> imap-send-command-1: cmdstr="28 STATUS \"emacs\" (UIDNEXT)"
> | | | | 5 <- imap-send-command-1: nil
> | | | 4 <- imap-send-command: 28
> | | | 4 -> imap-wait-for-tag: tag=28 buffer=nil
> | | | | 5 -> imap-arrival-filter: proc=#<process imap> string="* NO CLIENT 
> BUG DETECTED: STATUS on selected mailbox: emacs

> * STATUS emacs (UIDNEXT 22270)

> 28 OK STATUS completed

> "

Here Gnus asks for the UIDNEXT, which seem fine.

I believe the UoW warning is incorrect, sending STATUS on the
currently selected mailbox is valid according to RFC 2060.  This have
changed in RFC 3501, which say this is a SHOULD NOT operation, but the
justification given and the suggested workarounds aren't applicable to
what Gnus want to do.  Admittedly, Gnus (nnimap) could special-case
the STATUS on a selected mailbox, and return correct data immediately.
(Patches welcome..)

> | | | | | | 7 -> imap-send-command-1: cmdstr="65 SELECT \"emacs\""
> | | | | | | 7 <- imap-send-command-1: nil
> | | | | | 6 <- imap-send-command: 65
> | | | | | 6 -> imap-wait-for-tag: tag=65 buffer=nil
> | | | | | | 7 -> imap-arrival-filter: proc=#<process imap> string="* 5415 
> EXISTS

> * 0 RECENT

> * OK [UIDVALIDITY 1062436086] UID validity status

> * OK [UIDNEXT 22270] Predicted next UID

> * FLAGS (gnus-expire gnus-forward \\Answered \\Flagged \\Deleted \\Draft 
> \\Seen)

> * OK [PERMANENTFLAGS (gnus-expire gnus-forward \\* \\Answered \\Flagged 
> \\Deleted \\Draft \\Seen)] Permanent flags

> * OK [UNSEEN 5381] first unseen message in 
> /export/home/mail/monnier/Mail/emacs

> 65 OK [READ-WRITE] SELECT completed


Here Gnus select the group read-write.

> | | | | 5 -> imap-send-command-1: cmdstr="68 STATUS \"emacs\" (UNSEEN)"
> | | | | 5 <- imap-send-command-1: nil
> | | | 4 <- imap-send-command: 68
> | | | 4 -> imap-wait-for-tag: tag=68 buffer=nil
> | | | | 5 -> imap-arrival-filter: proc=#<process imap> string="* NO CLIENT 
> BUG DETECTED: STATUS on selected mailbox: emacs

> * STATUS emacs (UNSEEN 0)

> 68 OK STATUS completed


And here Gnus asks for the number of UNSEEN messages in the group.  It
is now 0.  I didn't remove any operation on your emacs folder above,
and Gnus didn't remove any SEEN flags in the group, so something other
than Gnus must have reset the unseen count.

I suspect the UoW implementation of the STATUS command on a currently
selected mailbox is buggy.

The STATUS value is used by Gnus in the group buffer, that's why it
reads 0 there.




reply via email to

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