On Thu, 2007-06-14 at 13:01 +0200, Erland Nylend wrote:
We delete the erroneous dovecot-uidlist -files, and so we are left with an account without a dovecot-uidlist file, but it still contains messages in cur
Messages come in, and deliver creates a dovecot-uidlist with uids "1,2 ... N"
The user runs imap/pop3, and dovecot notices that there are messages in cur, and adds them to the uidlist, after uids "1,2,3 ... N"
.. so, we end up with an unordered list.
Ah. I had never thought of that. But it's a problem only when you're migrating from another server..
Suggestion: make deliver create the index files, and a complete dovecot-uidlist when a message is sent to an account without index files.
This would slow down deliver unneededly. A better way might be to just not update dovecot-uidlist at all (which doesn't belong to "indexes" btw). This could probably be somewhat easily patched for v1.0, but for v1.1 which supports UIDPLUS extension Dovecot must always get an UID for newly saved messages.
And that still wouldn't solve the underlying problem that if you mix external maildir deliveries and Dovecot-delievered/saved mails you end up getting them in wrong order.
I don't really see any good solutions to this problem. Perhaps it's not a real problem except with migrations. For that the migration script itself could add all the files to dovecot-uidlist file.