Eu tenho um servidor RedHat 8 executando dovecot e postfix. O Postfix está entregando mensagens em minhas pastas maildir e o dovecot está configurado para disponibilizá-las aos usuários via IMAPS. A configuração parece funcionar principalmente, mas depois de funcionar por um tempo, meu aplicativo começa a ter erros ao fazer login no servidor.
Ao tentar fazer login via IMAPS recebo a mensagem:
NDC2 N0 [SERVERBUG] Internal error occurred. Refer to server log for more information.
Quando olho para os logs do dovecot, vejo mensagens de erro como:
Error: Mailbox INBOX: mmap failed: Permission denied (euid=xxx(user) egid=xxx(vmail) UNIX perms appear ok (ACL/MAC wrong?))
Error: Mailbox INBOX: mmap(/my/maildir/path/dovecot.index.cache) failed: Permission denied (euid=xxx(user) egid=xxx(vmail) UNIX perms appear ok (ACL/MAC wrong?))
Error: Mailbox INBOX: Index (in-memory index): in-memory index: Lost log for seq=1 offset=0: Failed to map file seq=2 offset=40..18446744073709551615 (ret=0): Beginning of the log isn't available (initial_mapped=0) - fscking (reopen_reason: Index not open)
Warning: fscking index file (in-memory index)
Error: Mailbox INBOX: Failed to map transaction log /my/maildir/path/dovecot.index.log at sync_offset=40 after locking: Beginning of the log isn't available
Pelo que posso dizer, as permissões nos diretórios estão bem. Isso é particularmente confuso, pois parece funcionar bem e, aleatoriamente, começa a dar o erro depois de um tempo. A exclusão dos arquivos de índice de cada caixa de entrada permite que ela comece a funcionar novamente, mas obviamente essa é uma solução alternativa e não uma solução real.