[Tickets #10442] Re: Mailbox listing failed: Bad IMAP request: Command Error. 10
bugs at horde.org
bugs at horde.org
Wed Aug 24 05:42:19 UTC 2011
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: http://bugs.horde.org/ticket/10442
------------------------------------------------------------------------------
Ticket | 10442
Updated By | Michael Slusarz <slusarz at horde.org>
Summary | Mailbox listing failed: Bad IMAP request: Command
| Error. 10
Queue | IMP
Version | 5.0.9
Type | Bug
State | Not A Bug
Priority | 2. Medium
Milestone |
Patch |
Owners |
------------------------------------------------------------------------------
Michael Slusarz <slusarz at horde.org> (2011-08-24 05:42) wrote:
>> This is a bug/fault in Exchange. Unfortunately, there is no way to
>> work around.
>
> I wonder about the second statement. I had the user try roundcube and using
> re-sorting in that environment, and there was never a problem displaying the
> message list within roundcube.
Please don't compare us with roundcube. :) Especially in terms of
performance.
Here's a fun trick (haven't looked at their IMAP code in awhile, Did
so to answer your question below, and analysis of their IMAP logs
alarmed me). In IMP 5 and Roundcube, open a mailbox with 20,000
messages.
IMP should open in less than a second. (well.. depends a bit on
whether the IMAP server-side cache is primed, but it is approximate).
Roundcube... well, let's just say you could go a brew a cup of coffee
before the first results came up (in my local test, it took 2 minutes
and 24 seconds).
Roundcube can only display X number of messages in a page (in other
words, it does not have seamless scrolling like IMP). However, for
some reason, it downloads ALL of this information for EVERY message in
the mailbox:
(UID RFC822.SIZE FLAGS INTERNALDATE BODY.PEEK[HEADER.FIELDS (DATE FROM
TO SUBJECT CONTENT-TYPE LIST-POST DISPOSITION-NOTIFICATION-TO REPLY-TO
IN-REPLY-TO CC BCC MESSAGE-ID CONTENT-TRANSFER-ENCODING REFERENCES
X-PRIORITY X-DRAFT-INFO MAIL-FOLLOWUP-TO MAIL-REPLY-TO RETURN-PATH)])
ACK! Why the hell is it doing this? Why do you need
"Disposition-Notification-To" data when displaying mailbox information
(A: you don't). Why do you need to download all of this data for
every message in the mailbox, when you are only displaying the first X
messages (A: you don't). Etc, etc.
There's a specific command in IMAP to provide all (or most) of the
information needed to display a mailbox listing: ENVELOPE. The fact
that they are not using this at all? That is extremely disturbing.
For the record, here is what we request from the IMAP server on a
mailbox listing:
(ENVELOPE FLAGS RFC822.SIZE BODY.PEEK[HEADER.FIELDS (IMPORTANCE
LIST-POST X-PRIORITY CONTENT-TYPE)])
> Maybe roundcube have a workaround or somehow
> dodge the bug?
No. Quite honestly, they just happen to be lucky that they are not
triggering the bug. They are using horribly inefficient queries that,
for whatever reason, do not tickle the bug on the Exchange server.
But that is neither intentional, nor desired behavior.
> We'll probably direct users to Exchange's OWA website, or remove exchange
> from our list of supported sites if there are too many problems.
> But it would be
> great if horde/imp can handle what other email clients can somehow manage.
I would love to workaround. Bur right now, I don't even know what the
problem is. You would have to investigate for me to figure out what
precisely is triggering the bug. Does Exchange not like IMAP commands
that only return INTERNALDATE? Or maybe it is only triggered if we do
INTERNALDATE searches on a message list over 2,000 (e.g. it is not
triggered if the queries are done are smaller subsets of the message
list).
More information about the bugs
mailing list