dovecot.index.pvt view is inconsistent: error messages for public mailbox folder

Andreas Ntaflos daff at pseudoterminal.org
Tue Jan 3 22:28:29 UTC 2017


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
  }
}


More information about the dovecot mailing list