[Dovecot] corrupted transaction log errors causing users mail to disappear temporarily
So Ive been looking into some problems with users reporting their mail goes missing for a second but then re-apears very soon after. I have tracked it down to happening at the same time these appear in the logs. Seems the transaction logs is getting corrupted somehow and then rebuilding itself (which works fine). The problem is while its re-builing the users think all of their mail is gone.
May 3 09:35:52 mailmachine dovecot: IMAP(test@domain.com): Corrupted transaction log file usershomedir/Maildir/dovecot.index.log seq 3: Invalid transaction log size (32708 vs 32840): usershomedir/Maildir/dovecot.index.log (sync_offset=32708)
We are using load balanced servers and data/index's are stored in their home dir's over nfs. All my config details and nfs options are below. We are currently balancing based on source address so most of the time users imap/pop processes should stick to one machine as much as possible.
Does anyone know of a way to rid of this problem, or at least make it so dovecot just returns a server error to the imap/pop client instead of showing them a blank index?
#nfs options defaults,intr,vers=3,bg,rsize=8192,wsize=8192,proto=udp 0 0
# 1.2.11: /etc/dovecot/dovecot.conf # OS: Linux 2.6.29.2-xenon-mail-ipv6-grsec x86_64 Debian 5.0.1 log_timestamp: %Y-%m-%d %H:%M:%S protocols: imap pop3 listen(default): *:143 listen(imap): *:143 listen(pop3): *:110 disable_plaintext_auth: no login_dir: /usr/var/run/dovecot/login login_executable(default): /usr/libexec/dovecot/imap-login login_executable(imap): /usr/libexec/dovecot/imap-login login_executable(pop3): /usr/libexec/dovecot/pop3-login login_user: dhmail login_process_per_connection: no login_processes_count: 150 login_max_processes_count: 1000 login_max_connections: 3000 max_mail_processes: 2500 mail_max_userip_connections: 7 first_valid_uid: 100 mail_privileged_group: mail mail_location: maildir:~/Maildir mmap_disable: yes mail_nfs_index: yes mail_executable(default): /usr/libexec/dovecot/imap mail_executable(imap): /usr/libexec/dovecot/imap mail_executable(pop3): /usr/libexec/dovecot/pop3 mail_plugin_dir(default): /usr/lib/dovecot/imap mail_plugin_dir(imap): /usr/lib/dovecot/imap mail_plugin_dir(pop3): /usr/lib/dovecot/pop3 pop3_uidl_format(default): %08Xu%08Xv pop3_uidl_format(imap): %08Xu%08Xv pop3_uidl_format(pop3): UID%u-%v
-- Jordan Tardif DreamHost
On Mon, 2010-05-03 at 10:41 -0700, Jordan Tardif wrote:
May 3 09:35:52 mailmachine dovecot: IMAP(test@domain.com): Corrupted transaction log file usershomedir/Maildir/dovecot.index.log seq 3: Invalid transaction log size (32708 vs 32840): usershomedir/Maildir/dovecot.index.log (sync_offset=32708) .. Does anyone know of a way to rid of this problem, or at least make it so dovecot just returns a server error to the imap/pop client instead of showing them a blank index?
This should return an error. Maybe the clients get confused by that?
We are using load balanced servers and data/index's are stored in their home dir's over nfs. All my config details and nfs options are below. We are currently balancing based on source address so most of the time users imap/pop processes should stick to one machine as much as possible.
That's probably the cause. Some users use multiple clients from different IPs. http://dovecot.org/list/dovecot/2010-May/049031.html should help in future.
participants (2)
-
Jordan Tardif
-
Timo Sirainen