Hi!

 

I’m struggling with the following error:

 

Aug  4 21:32:00 mx02 dovecot: imap(xxx@xxx.tld)<17693><w14vpU+PCCSwPxpo>: Error: Mailbox INBOX: Broken file /home/vmail/xxx.tld/xxx/dovecot-uidlist line 6246: Invalid data:

Aug  4 21:49:22 mx02 dovecot: imap(xxx@xxx.tld)<21879><YNhW40+PLoBOGLlU>: Error: Mailbox INBOX: Broken file /home/vmail/xxx.tld/xxx/dovecot-uidlist line 6249: Invalid data:

 

It seems the first part is not incremented properly and sometimes it has a jump in it, like the line 6246:

 

18810 :1564935891.M816284P8904.mx01.m.ininet.hu,S=12145,W=12409

18812 :1564947092.M542714P2651.mx01.m.ininet.hu,S=12275,W=12517

 

Even though I deleted all the dovecot* files the error comes back. I have the maildirs through NFS, but I set to store the INDEX files locally.

 

I have failover configuration, that means when one of my servers die another one takes the active IP and start to serve dovecot users, so its always one server that serves all the users, no load balacing.

 

Any idea what am I missing or how could I fixed this problem?

 

uname -a

Linux mx02.m.mydomain.tld 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux

 

dovecot -n

# 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf

# Pigeonhole version 0.5.4 ()

# OS: Linux 4.19.0-5-amd64 x86_64 Debian 10.0 nfs

# Hostname: mx02.m.mydomain.tld

auth_mechanisms = plain login

auth_verbose = yes

default_client_limit = 10000

default_process_limit = 1000

dict {

  quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext

}

disable_plaintext_auth = no

mail_fsync = always

mail_location = maildir:/home/vmail/%d/%n:INDEX=/var/indexes/%d/%n

mail_plugins = " quota"

mail_privileged_group = mail

mmap_disable = yes

namespace inbox {

  inbox = yes

  location =

  mailbox Drafts {

    auto = subscribe

    special_use = \Drafts

  }

  mailbox Sent {

    auto = subscribe

   special_use = \Sent

  }

  mailbox "Sent Messages" {

    special_use = \Sent

  }

  mailbox Spam {

    auto = subscribe

    special_use = \Junk

  }

  mailbox Trash {

    auto = subscribe

    special_use = \Trash

  }

  prefix = INBOX.

  separator = .

  type = private

}

passdb {

  args = /etc/dovecot/dovecot-sql.conf.ext

  driver = sql

}

plugin {

  quota = dict:User quota::proxy::quota

  sieve = /home/vmail/default.sieve

  sieve_default = /home/vmail/default.sieve

  sieve_extensions = +editheader

  sieve_global_dir = /var/lib/dovecot/sieve

}

protocols = " imap pop3"

service auth-worker {

  user = vmail

}

service auth {

  unix_listener /var/spool/postfix/private/auth {

    group = postfix

    mode = 0660

    user = postfix

  }

  unix_listener auth-userdb {

    mode = 0600

    user = vmail

  }

  user = $default_internal_user

}

service dict {

  unix_listener dict {

    group = vmail

    mode = 0600

    user = vmail

  }

}

service imap-login {

  inet_listener imaps {

    port = 993

    ssl = yes

  }

}

service imap {

  process_limit = 1024

}

service pop3 {

  process_limit = 1024

}

service stats {

  unix_listener stats-reader {

    group = vmail

    mode = 0660

    user = vmail

  }

  unix_listener stats-writer {

    group = vmail

    mode = 0660

    user = vmail

  }

}

ssl_cert = </etc/postfix/ssl/mail.mydomain.tld-dovecot.crt

ssl_client_ca_dir = /etc/ssl/certs

ssl_dh = # hidden, use -P to show it

ssl_key = # hidden, use -P to show it

userdb {

  args = /etc/dovecot/dovecot-sql.conf.ext

  driver = sql

}

protocol lda {

  mail_plugins = " quota sieve"

}

protocol imap {

  mail_max_userip_connections = 20

  mail_plugins = " quota quota imap_quota"

}

protocol pop3 {

  mail_max_userip_connections = 20

  mail_plugins = " quota quota"

}

 

Thanks,

Balazs