[Dovecot] Broken physical size caching in Dovecot 2.1.10
Rob Redpath
rob.redpath at heartinternet.co.uk
Tue Feb 19 17:45:12 EET 2013
On 19/02/13 15:41, Timo Sirainen wrote:
> On 19.2.2013, at 16.48, Rob Redpath <rob.redpath at 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 at 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 at 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 -
# 2.1.10: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-279.el6.x86_64 x86_64 Red Hat Enterprise Linux Server
release 6.3 (Santiago)
auth_mechanisms = plain login cram-md5 digest-md5 apop
auth_socket_path = /var/run/dovecot/auth-userdb
auth_username_chars =
auth_worker_max_count = 8192
default_client_limit = 32771
default_internal_user = mail
default_process_limit = 32771
disable_plaintext_auth = no
first_valid_uid = 8
last_valid_uid = 8
lda_mailbox_autocreate = yes
mail_location = maildir:%h
mail_plugins = quota zlib
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
args = /var/mail-auth/passwd.dovecot
driver = passwd-file
}
passdb {
args = /var/mail-auth/legacy.%l
driver = passwd-file
}
plugin {
quota = maildir
quota_rule = ?:storage=400M
quota_rule2 = Trash:storage=+10%
quota_warning = storage=90%% quota-warning 90 %u
}
service anvil {
client_limit = 65545
}
service auth {
client_limit = 118793
unix_listener auth-userdb {
group = mail
mode = 0600
user = mail
}
}
service imap-login {
process_min_avail = 16
vsz_limit = 64 M
}
service imap-postlogin {
executable = script-login /usr/local/bin/count_imap_login
group = mail
user = mail
}
service imap {
executable = imap imap-postlogin
process_limit = 16384
}
service pop3-postlogin {
executable = script-login /usr/local/bin/count_pop_login
group = mail
user = mail
}
service pop3 {
executable = pop3 pop3-postlogin
process_limit = 4096
}
service quota-warning {
executable = script /usr/local/bin/send-mailbox-near-quota-warning
unix_listener quota-warning {
user = mail
}
user = mail
}
ssl_cert = </etc/ssl/certs/redacted.pem
ssl_key = </etc/ssl/certs/redacted.pem
userdb {
args = /var/mail-auth/passwd.dovecot
driver = passwd-file
}
userdb {
args = /var/mail-auth/legacy.%l
driver = passwd-file
}
verbose_proctitle = yes
protocol imap {
imap_capability = +QUOTA SORT SORT=DISPLAY
mail_max_userip_connections = 50
mail_plugins = quota zlib imap_quota
}
protocol pop3 {
mail_max_userip_connections = 40
pop3_reuse_xuidl = yes
}
More information about the dovecot
mailing list