[Dovecot] Corrupted mdbox on LMTP director delivery while user [solved] is logged in via IMAP

Daniel Parthey daniel.parthey at informatik.tu-chemnitz.de
Sat Jun 9 19:51:27 EEST 2012


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(someuser at 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(someuser at 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(someuser at 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(someuser at 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(someuser at 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 username at example.org              -> Host mail01
IMAP director was using username at dovecotmail.example.org  -> Host mail04

> # 2.0.20: /etc/dovecot-director/dovecot-director.conf
> passdb {
>   args = proxy=y nopassword=y user=%n at 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


More information about the dovecot mailing list