On 19.2.2013, at 17.45, Rob Redpath rob.redpath@heartinternet.co.uk wrote:
On 19/02/13 15:41, Timo Sirainen wrote:
On 19.2.2013, at 16.48, Rob Redpath rob.redpath@heartinternet.co.uk wrote:
Just run the maildir-size-fix.pl to your existing maildirs and you should have no problems in future?
Sadly, that doesn't seem to work. In a normal case where I see this issue, running maildir-size-fix.pl (with -a -c -f -r -v options) identifies and renames lots of files, but then accessing the mailbox causes dovecot to rename them back to the incorrect values. Then something is wrong.
One thing I've noticed during testing this is that, in my doveadm fetch output for an affected mailbox, the same UID appears to be processed over and over before Dovecot moves on. In the example I happen to have on screen, this line appears 13 times in the output, each with with a larger value to the right of the <
doveadm(user@example.com): Error: Maildir filename has wrong S value, renamed the file from /var/spool/virtual_mail/user_example.com_d/.INBOX.folder/cur/1308038406.M274176P16579.mail.example.net,S=11919:2,S to /var/spool/virtual_mail/user_example.com_d/.INBOX.folder/cur/1308038406.M274176P16579.mail.example.net,S=11919:2,S doveadm(user@example.com): Error: Corrupted index cache file /var/spool/virtual_mail/user_example.com_d/.INBOX.eBay/dovecot.index.cache: Broken physical size for mail UID 99 Have you enabled zlib plugin globally, not just for e.g. IMAP protocol? Show your doveconf -n output.
I believe that the plugin is enabled globally -
Try with a test user or some mailbox that has only one mail. See if maildir-size-fix.pl really makes the file size correct by checking that the S=size matches zcat file|wc output. Then see if Dovecot breaks it again with e.g.:
nc localhost 143 a login user pass b select inbox c fetch 1:* body.peek[]