Gnus development mailing list
 help / color / mirror / Atom feed
* nnimap vs dbmail
@ 2007-05-17 11:33 James Cloos
  2007-05-23 14:40 ` Simon Josefsson
  0 siblings, 1 reply; 4+ messages in thread
From: James Cloos @ 2007-05-17 11:33 UTC (permalink / raw)
  To: ding

I'm looking into converting over to using imap as the backstore for my
mail and am looking at using dbmail for that.

I'm seeing some buglets in nnimap.  

As an example, the unread article counts in the Group buffer are almost
always incorrect.  And errors often get printed to the minibuffer.

One issue is that dbmail gives each article a server-unique UID rather
than a just user-unique or folder-unique.  So they are never contiguous.
nnimap seems to expect contiguous UIDs and goes searching for them,
causing IMAP errors.

As an example, I recorded this imap exchange today via tshark:

,----< 149 SELECT "ROOT" >
| * 4 EXISTS
| * 0 RECENT
| * FLAGS (\Seen \Answered \Deleted \Flagged \Draft)
| * OK [PERMANENTFLAGS (\Seen \Answered \Deleted \Flagged \Draft)]
| * OK [UIDNEXT 3669] Predicted next UID
| * OK [UIDVALIDITY 13] UID value
| 149 OK [READ-WRITE] SELECT completed
`----

OK so far.

,----< 150 UID SEARCH UNSEEN UNDELETED >
| * SEARCH 
| 150 OK SEARCH completed
`----

None unseen and none undeleted.

,----< 151 UID SEARCH SEEN >
| * SEARCH 3662 3664 3666 3668
| 151 OK SEARCH completed
`----

4 seen articles, with UIDs 3662, 3664, 3666 and 3668.

,----< 152 UID SEARCH FLAGGED >
| * SEARCH 
| 152 OK SEARCH completed
`----

None flagged.

,----< 153 UID SEARCH ANSWERED >
| * SEARCH 
| 153 OK SEARCH completed
`----

None answered.

,----< 154 UID SEARCH RECENT >
| * SEARCH 
| 154 OK SEARCH completed
`----

None recent.

,----< 155 UID FETCH 3665,3667 (UID RFC822.SIZE BODY BODY.PEEK[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref To Newsgroups)]) >
| 155 BAD invalid message range specified
`----

So why fetch 3665 and 3667 if they were not listed in any of the UID searches?

,----< 156 UID FETCH 3665,3667 (UID RFC822.SIZE BODY BODY.PEEK[HEADER.FIELDS (Subject From Date Message-Id References In-Reply-To Xref To Newsgroups)]) >
| 156 BAD invalid message range specified
`----

Twice, even.

,----< 157 UID STORE 3665,3667 +FLAGS (\Seen) >
| 157 BAD invalid message range specified
`----

And dbmail doesn't like storing flags for non-extant UIDs.

,----< 158 STATUS "ROOT" (UNSEEN) >
| * STATUS "ROOT" (UNSEEN 0)
| 158 OK STATUS completed
`----

,----< 159 UNSELECT >
| 159 OK UNSELECT completed
`----

This time the errors did not prevent me from seeing new mail, but that
isn't always the case.  Some new mail is inaccessible in gnus because of
such errors.  A test shows that one of those errors is probably due to
this line in list/imap.el:

,----[ from gnus/lisp/imap.el (imap-parse-body) ]
| (assert (eq (char-after) ?\)) nil "In imap-parse-body")
`----

Are those (assert)s necessary?  They effectively lose mail.

-JimC
-- 
James Cloos <cloos@jhcloos.com>         OpenPGP: 1024D/ED7DAEA6



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

end of thread, other threads:[~2007-05-25 10:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-05-17 11:33 nnimap vs dbmail James Cloos
2007-05-23 14:40 ` Simon Josefsson
2007-05-24 19:07   ` James Cloos
2007-05-25 10:12     ` 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).