Gnus development mailing list
 help / color / mirror / Atom feed
From: James Cloos <cloos+math_uh-ding@jhcloos.com>
To: ding@gnus.org
Subject: nnimap vs dbmail
Date: Thu, 17 May 2007 07:33:51 -0400	[thread overview]
Message-ID: <m3ejlfbs5l.fsf@lugabout.jhcloos.org> (raw)

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



             reply	other threads:[~2007-05-17 11:33 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17 11:33 James Cloos [this message]
2007-05-23 14:40 ` Simon Josefsson
2007-05-24 19:07   ` James Cloos
2007-05-25 10:12     ` Simon Josefsson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3ejlfbs5l.fsf@lugabout.jhcloos.org \
    --to=cloos+math_uh-ding@jhcloos.com \
    --cc=ding@gnus.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).