http://dovecot.procontrol.fi/test/
I think I've fixed the problems that were corrupting indexes with the new code. It happened every time you had expunged some messages and new messages arrived. I think this release might actually work :)
disable_plaintext_auth = yes will be default from now on. It allows plaintext authentication from localhost (127.*, ::1) however.
I just figured out that the lockless cache file reading prevents me from fixing the mbox code to work the same way it used to. I'm not sure actually how this would be best fixed.. Problem is that headers in mails change and move the messages around in the mailbox, so I have to keep track of them. Previously I just updated the header size in index files.. but without read locks this can't be done safely.
One possibility would be to parse the whole mbox file every time when the mailbox is opened (or when it needs to be read) and save the header sizes in memory. That'd make it slower than it is today though..
Or maybe it'd work if I just grabbed exclusive lock whenever reading header sizes. They could be then copied into memory to avoid locking more than once. But that still creates locking contention if lots of clients are reading the mailbox. Exactly in the situation where I'd mostly use mboxes..
I could also save it in .imap.index file which still currently uses read-locks. But I'd rather want to get rid of them in there too.