Hello,
We have recently implemented dovecot directors to resolve an ongoing NFS lock/corruption issue. Everything was working great! So we updated our servers from centos 7.3 to 7.7 and dovecot 2.2.10 to 2.3.8 This was a bit of a failure and we were getting spammed with corrupt index files and logs. After we clear the index files with rm rf/mail/d/e/username/Maildir/dovecot*, they just come back in. From: dovecot-mysql-2.3.8-4.x86_64 dovecot-2.3.8-4.x86_64 dovecot-pigeonhole-2.3.8-4.x86_64 To: dovecot-2.2.10-8.el7.x86_64 dovecot-mysql-2.2.10-8.el7.x86_64 dovecot-pigeonhole-2.2.10-8.el7.x86_64
We rolled back nfs-utils and libs due to a case on redhats bug report "https://bugzilla.redhat.com/show_bug.cgi?id=1521071" libnfsidmap-0.25-19.el7.x86_64 nfs-utils-1.3.0-0.65.el7.x86_64 to libnfsidmap-0.25-15.el7.x86_64 nfs-utils-1.3.0-0.33.el7.x86_64
We rolled back our dovecot version to 2.2.10 and are still getting the following logs.
Any advice would help
Network view:
|Dovecot Directors x 3| | |Dovecot servers x4| Storage is shared between all 4 servers | |Netapp NFSv3 Storage| Nothing changed here
Oct 25 01:33:25 <IP> dovecot: imap(<username>): Error: Log synchronization error at seq=89,offset=32340 for /mail/j/k/<username>/Maildir/dovecot.index: Extension record update for invalid uid=6798 Oct 25 01:33:25 <IP> dovecot: imap(<username>): Error: Log synchronization error at seq=89,offset=32384 for /mail/j/k/<username>/Maildir/dovecot.index: Extension record update for invalid uid=6798 Oct 25 01:33:25 <IP> dovecot: imap(<username>): Error: Synchronization corrupted index header /mail/j/k/<username>/Maildir/dovecot.index: first_recent_uid 6799 > next_uid 6798 Oct 25 01:33:25 <IP> dovecot: imap(<username>): Warning: fscking index file /mail/j/k/<username>/Maildir/dovecot.index Oct 25 01:33:25 <IP> dovecot: imap(<username>): Error: Fixed index file /mail/j/k/<username>/Maildir/dovecot.index: first_recent_uid 6799 -> 6798 Oct 25 01:33:26 <IP> dovecot: imap(<username>): Error: Broken file /mail/j/k/<username>/Maildir/dovecot-uidlist line 6461: Invalid data: Oct 25 01:33:26 <IP> dovecot: imap(<username>): Error: Log synchronization error at seq=89,offset=32488 for /mail/j/k/<username>/Maildir/dovecot.index: Append with UID 6798, but next_uid = 6799 Oct 25 01:33:26 <IP> dovecot: imap(<username>): Warning: fscking index file /mail/j/k/<username>/Maildir/dovecot.index Oct 25 01:47:14 <IP> dovecot: imap(<username>): Warning: fscking index file /mail/d/e/<username>/Maildir/dovecot.index Oct 25 01:47:14 <IP> dovecot: imap(<username>): Error: Failed to map transaction log /mail/d/e/<username>/Maildir/dovecot.index.log at sync_offset=9900 after locking: pread() failed: Stale file handle Oct 25 01:47:14 <IP> dovecot: imap(<username>): Error: Index /mail/d/e/<username>/Maildir/dovecot.index: Lost log for seq=16 offset=192: Missing middle file seq=16 (between 16..4294967295, we have seqs 14): Requested newer log than exists: Log inode is unchanged (initial_mapped=1, reason=Index mapped) Oct 25 01:51:14 <IP> dovecot: imap(<username>): Error: Broken file /mail/d/e/<username>/Maildir/dovecot-uidlist line 65: Invalid data:
Dovecot -n
# 2.2.10: /etc/dovecot/dovecot.conf # OS: Linux 3.10.0-1062.1.2.el7.x86_64 x86_64 CentOS Linux release 7.7.1908 (Core) auth_mechanisms = plain login auth_username_format = %Ln auth_verbose = yes auth_verbose_passwords = plain disable_plaintext_auth = no first_valid_uid = 300 lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes mail_fsync = always mail_location = maildir:~/Maildir mail_nfs_index = yes mail_nfs_storage = yes maildir_very_dirty_syncs = yes 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 mmap_disable = yes 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 = /etc/dovecot/sql.conf.ext driver = sql } plugin { sieve = ~/.dovecot.sieve sieve_dir = ~/sieve sieve_global_dir = /mail/sieve/global/ sieve_global_path = /mail/sieve/default.sieve } postmaster_address = postmaster@%d protocols = imap pop3 lmtp sieve service auth { client_limit = 0 inet_listener { port = 11010 } process_limit = 1 process_min_avail = 0 service_count = 0 } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_limit = 2 process_min_avail = 2 service_count = 0 } service imap { client_limit = 1 executable = imap process_limit = 2048 process_min_avail = 50 service_count = 1 } service lmtp { client_limit = 1 process_limit = 0 process_min_avail = 0 service_count = 0 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0660 user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_limit = 2 process_min_avail = 2 service_count = 0 } service pop3 { client_limit = 1 executable = pop3 process_limit = 256 process_min_avail = 25 service_count = 1 } ssl_ca = </etc/ssl/mdc/mdc.ca ssl_cert = </etc/ssl/mdc/mdc.crt ssl_cipher_list = !RC4:HIGH:MEDIUM:+TLSv1:!MD5:!SSLv2:+SSLv3:!ADH:!aNULL:!eNULL:!NULL:!DH:!ADH:!EDH:!AESGCM ssl_key = </etc/ssl/mdc/mdc.key ssl_protocols = !SSLv2 !SSLv3 userdb { args = /etc/dovecot/sql.conf.ext driver = sql override_fields = plain_pass=%w } protocol lmtp { mail_plugins = " quota sieve" } protocol imap { mail_max_userip_connections = 40 } protocol sieve { info_log_path = /var/log/dovecot-sieve.log log_path = /var/log/dovecot-sieve-errors.log managesieve_implementation_string = dovecot managesieve_max_line_length = 65536 }
Billy Luedtke, Microsoft MCP System Administrator II, WIN