Daniel Parthey wrote: > we get errors about corrupted indexes and we are losing flags with mdbox on > NFSv4: > > Error: Recent flags state corrupted for mailbox > Error: Corrupted dbox file > Error: Corrupted transaction log file > > It looks like a LMTP director problem. The user has IMAP IDLE connections > open and lmtp delivers to another host. This leads to nfs corruption problems. > > Jun 8 03:36:03 10.129.3.200 dovecot: mailbox: mail: > imap([email protected]): Error: Corrupted transaction log file > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox- > Mails/dovecot.index.log seq 82: Invalid transaction log size (32856 vs > 32824): > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox-Mails/dovecot.index.log > (sync_offset=32856) > Jun 8 03:36:03 10.129.3.200 dovecot: mailbox: mail: > imap([email protected]): Error: Index > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox-Mails/dovecot.index: > Lost log for seq=82 > offset=32856 > Jun 8 03:36:03 10.129.3.200 dovecot: mailbox: mail: > imap([email protected]): Warning: fscking index file > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox-Mails/dovecot.index > Jun 8 03:36:03 10.129.3.200 dovecot: mailbox: mail: > imap([email protected]): Error: Fixed index file > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox-Mails/dovecot.index: > log_file_seq 82 > -> 83 > Jun 8 03:36:38 10.129.3.200 dovecot: mailbox: mail: > imap([email protected]): Error: Transaction log file > /mail/dovecot/example.de/someuser/mail/mailboxes/INBOX/dbox-Mails/dovecot.index.log.2: > > marked corrupted > > How to enable the LMTP director to deliver to the correct mailbox host?
The reason were different usernames for different protocols (lmtp and imap) of the same user, which resulted in different target hosts in the director: LMTP director was using [email protected] -> Host mail01 IMAP director was using [email protected] -> Host mail04 > # 2.0.20: /etc/dovecot-director/dovecot-director.conf > passdb { > args = proxy=y nopassword=y user=%n@dovecotmail.%d > driver = static > } Removing the user mapping in the static imap passdb solved the problem: passdb { args = proxy=y nopassword=y driver = static } Now the user is directed to the same host for all protocols again. Regards, Daniel
