<<< Date Index >>>     <<< Thread Index >>>

Upgrade from 1.5.9 to 1.5.13: Two regressions



Hello,

Yesterday evening I tried to upgrade my Mutt from 1.5.9 to 1.5.13, but
I found two regressions which make my life harder, both related to
IMAP functionality.

Mutt is running on the same machine with the imap server, the imap
server is cyrus imapd 2.1.18, the machine is an Athlon64, 1 GB RAM
running Debian Sarge i386, both Mutt versions are compiled from the
original mutt source without any patches.

(1) In December 2005, Mutt changed the way how it determines the
number of new messages in an IMAP folder.  Before that date, it used
STATUS XX (RECENT), now it is STATUS XX (UIDNEXT UIDVALIDITY UNSEEN).
I have superficially read the RFCs and although this method seems to
be more correct, it is _much_ slower on large mailboxes.  I have about
20 IMAP mailboxes, five of them are mailing list folders with >30k
messages. The new method of asking for the status for my mailboxes
takes 15 seconds to be answered from the imap server, while for the
old method the answer was almost instantaneous.  Mutt 1.5.9 runs fine
with mail_check=5; 1.5.13 is totally unusable with that value.
Setting mail_check to a higher value is not really a solution, because
even then Mutt will stall completely for 15 seconds every, say, three
minutes.

(2) On one of my mailboxes mutt fails to save the message flags when I
switch to another mailbox.  The mailbox contains 34487 messages.  Mutt
says "Fatal error: word too long" and refuses to reconnect to the
server.  I've looked at the conversation between Mutt and the imapd
with tcpdump: Mutt sends a UID STORE command with a long list of UIDs
that exceeds the maximum command length of the imap server, which is
16384 bytes.

a0105 UID STORE  64808:64842[...] ,99256:99282 FLAGS.SILENT (Old)
* BYE Fatal error: word too long

After exactly 16384 bytes the imap server says "BYE" and closes the
connection. Of course I havn't read a few thousand messages.  Mutt
1.5.9 updates only the status of the messages which I have read:

a0062 UID STORE 64808 FLAGS.SILENT (\Seen)
a0062 OK Completed
a0063 CLOSE
a0063 OK Completed

Any help is greatly appreciated,
Jim