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(someu...@example.de): 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(someu...@example.de): 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(someu...@example.de): 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(someu...@example.de): 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(someu...@example.de): 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 usern...@example.org              -> Host mail01
IMAP director was using usern...@dovecotmail.example.org  -> 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

Reply via email to