Andreas Ntaflos
2017-Jan-03 22:28 UTC
dovecot.index.pvt view is inconsistent: error messages for public mailbox folder
Hi list, running Dovecot 2.2.27 on Ubuntu 14.04. A public mailbox "Public/Spam-Learning" in a public namespace with per-user "Seen" flags is configured like this: namespace pub { hidden = no inbox = no list = children location = maildir:/var/vmail/public:INDEXPVT=~/Maildir/public prefix = Public/ separator = / subscriptions = no type = public mailbox "Spam-Learning" { auto = subscribe } } The log files are full of error messages like these (got about 15000 in the last three days): 2017-01-03T11:19:28.242386+01:00 mailserver01 dovecot: imap(foo.bar at example.org): Error: /var/vmail/example.org/foo.bar/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent 2017-01-03T11:19:28.248524+01:00 mailserver01 dovecot: imap(foo.bar at example.org): Error: /var/vmail/example.org/foo.bar/Maildir/public/.Spam-Learning/dovecot.index.pvt view is inconsistent 2017-01-03T11:23:50.209732+01:00 mailserver01 dovecot: imap(baz.quux at example.org): Error: /var/vmail/example.org/baz.quux/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent 2017-01-03T11:23:50.775940+01:00 mailserver01 dovecot: imap(some.user at example.org): Error: /var/vmail/example.org/some.user/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent 2017-01-03T11:25:38.419536+01:00 mailserver01 dovecot: imap(other.user at example.org): Error: /var/vmail/example.org/other.user/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent 2017-01-03T11:34:14.351346+01:00 mailserver01 dovecot: imap(more.user at example.org): Error: /var/vmail/example.org/more.user/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent 2017-01-03T11:41:37.488916+01:00 mailserver01 dovecot: imap(support.user at example.org): Error: /var/vmail/example.org/support.user/Maildir/public/.Spam-Learning/dovecot.index.pvt reset, view is now inconsistent This problem did not seem to manifest itself in Dovecot 2.2.25, we see it only after upgrading to 2.2.27. I am not sure what the effects are. It seems that messages moved to the Public/Spam-Learning folder are deleted after a short while (not by the sa-learn cron job, which runs every morning) but I currently cannot say if this is because a user deletes them explicitly or because Dovecot does something it shouldn't. So this observation is possibly not relevant. It also doesn't seem to matter what kind of IMAP client access the Spam-Learning folder. Our users use Thunderbird, Apple Mail, Outlook, Roundcube, Horde and various mobile clients as well. I have attached the output of doveconf -n for reference. What could be the issue here? Are we doing something wrong or is this a bug in Dovecot? Thanks! Andreas -------------- next part -------------- # 2.2.27 (c0f36b0): /etc/dovecot/dovecot.conf # Pigeonhole version 0.4.16 (fed8554) # OS: Linux 4.4.0-57-generic x86_64 Ubuntu 14.04.3 LTS auth_master_user_separator = * auth_mechanisms = plain login auth_socket_path = /var/run/dovecot/auth-master base_dir = /var/run/dovecot/ default_client_limit = 8192 default_process_limit = 1024 default_vsz_limit = 512 M lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes lda_original_recipient_header = X-Original-To listen = * mail_access_groups = mail mail_location = maildir:~/Maildir mail_plugins = " zlib" mail_privileged_group = mail managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave imapflags namespace backup { hidden = yes inbox = no list = no location = maildir:~/Maildir-backup prefix = Backup/ separator = / type = private } namespace inbox { hidden = no inbox = yes list = yes location mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox INBOX/Spam { auto = subscribe special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Trash { auto = subscribe special_use = \Trash } prefix separator = / subscriptions = yes type = private } namespace pub { hidden = no inbox = no list = children location = maildir:/var/vmail/public:INDEXPVT=~/Maildir/public mailbox Spam-Learning { auto = subscribe } prefix = Public/ separator = / subscriptions = no type = public } passdb { args = /etc/dovecot/master.%s driver = passwd-file master = yes name = passwd-file } passdb { args = /etc/dovecot/dovecot-ldap.conf driver = ldap } plugin { acl = vfile:/etc/dovecot/dovecot-acl recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = /etc/dovecot/sieve.d/before/ sieve_default = /etc/dovecot/sieve.d/default.sieve sieve_extensions = +imapflags sieve_global = /etc/dovecot/sieve.d/global/ zlib_save = bz2 zlib_save_level = 9 } protocols = imap pop3 lmtp sieve service auth-worker { user = $default_internal_user } service auth { client_limit = 10240 unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } unix_listener auth-master { mode = 0600 user = vmail } user = $default_internal_user } service imap-login { process_limit = 1024 process_min_avail = 8 service_count = 1 vsz_limit = 512 M } service imap { process_limit = 4096 vsz_limit = 2 G } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } inet_listener sieve_deprecated { port = 2000 } } service pop3-login { process_limit = 1024 process_min_avail = 8 service_count = 1 vsz_limit = 512 M } ssl = required ssl_cert = </etc/ssl/certs/mailserver01.internal.example.com.crt.pem ssl_cipher_list = AES128+EECDH:AES128+EDH ssl_dh_parameters_length = 4096 ssl_key = # hidden, use -P to show it ssl_prefer_server_ciphers = yes ssl_protocols = !SSLv3 !SSLv2 userdb { args = /etc/dovecot/dovecot-ldap.conf default_fields = uid=vmail gid=vmail home=/var/vmail/%d/%n driver = ldap } verbose_proctitle = yes protocol lmtp { mail_plugins = " zlib sieve acl" } protocol lda { mail_plugins = " zlib sieve acl" } protocol imap { mail_max_userip_connections = 1000 mail_plugins = " zlib acl" } local 10.1.81.210 { protocol imap { ssl_cert = </etc/ssl/certs/example.org_certbundle.crt.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.210 { protocol pop3 { ssl_cert = </etc/ssl/certs/example.org_certbundle.crt.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.210 { protocol sieve { ssl_cert = </etc/ssl/certs/example.org_certbundle.crt.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.210 { protocol lda { ssl_cert = </etc/ssl/certs/example.org_certbundle.crt.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.211 { protocol imap { ssl_cert = </etc/letsencrypt/live/example.at/fullchain.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.211 { protocol pop3 { ssl_cert = </etc/letsencrypt/live/example.at/fullchain.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.211 { protocol sieve { ssl_cert = </etc/letsencrypt/live/example.at/fullchain.pem ssl_key = # hidden, use -P to show it } } local 10.1.81.211 { protocol lda { ssl_cert = </etc/letsencrypt/live/example.at/fullchain.pem ssl_key = # hidden, use -P to show it } }