[Tickets #12001] Re: Courier - max atom size too small

noreply at bugs.horde.org noreply at bugs.horde.org
Thu Feb 14 00:19:04 UTC 2013


Ticket URL: http://bugs.horde.org/ticket/12001
  Ticket             | 12001
  Updated By         | Michael Slusarz <slusarz at horde.org>
  Summary            | Courier - max atom size too small
  Queue              | IMP
  Version            | 6.0.3
  Type               | Bug
  State              | Unconfirmed
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |

Michael Slusarz <slusarz at horde.org> (2013-02-13 17:19) wrote:

> Why?

Let me count the ways:

1. RFC 2683 was written in 1999.  Back then, servers (both IMAP and  
the underlying OS) weren't as robust/were 32-bit and had limited  
memory/etc, etc.  But now it is 2013 and there is zero reason,  
performance or otherwise, to NOT allow something like this.  Or, at  
the very least, provide a much more reasonable command limit for  
authenticated users (e.g. 100 KB).
2. Regardless of #1, 2683 is informational and not part of the standard.
3. What's more - there are now IMAP extensions that will be completely  
broken if you limit the size of incoming data.  For example QRESYNC,  
since you MUST pass the entire known UID list at SELECT/EXAMINE time.   
If you have thousands of UIDs in the local cache, this is no longer  
possible (you can't break this up into multiple commands).
4. It is a significant performance penalty to have to break apart and  
send these commands separately, especially since IMP does not  
currently support pipelining.

> i was trying to google it and it looks like i'm not able to set this  
> in Courier. I don't know why exactly IMP requested so many messages  
> but it happened automatically right after the login so i assumed  
> it's not my fault.

Because Courier is braindead and doesn't support SORT.  So if you are  
sorting by something other than arrival sort, we have to grab the  
message data from every message in the mailbox to do the sorting on  
the PHP side.

I removed the code to prevent sorting on servers that don't support  
this in IMP, but I think I probably need to add it back (Gmail doesn't  
provide sort either).

> Command line length limit in several IMAP servers (default values in bytes):
> Courier: 16384 (looks like cannot be changed)
> Dovecot: 65536 (can be set in config file)
> Cyrus: probably 131072 (can be set in config file)

The latter 2 are a much more reasonable default on current machines,  
while preventing DoS attacks.

More information about the bugs mailing list