An email came to several users but one user didn't receive it and we got
'Mail delivery failed' message.
As I see from the log below, there were broken index file.
Then dovecot repaired that index and we got the error:
Panic: file mail-index-sync-update.c: line 1013 (mail_index_sync_map):
assertion failed: (map->hdr.indexid == index->indexid || map->hdr.indexid
== 0)
It was one-time error and it has not reappeared yet.
At the moment the user receives emails successfully (in
.Queue.A_Sup.group_05 as well).
It is supposed that Dovecot had to repair index file and put the email in
mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/ directory but it didn't.
Is there something wrong with Dovecot?
Thanks.
---
Operating system: Linux Centos 7 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May
21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
rpm -qa |grep dovecot
dovecot-pigeonhole-2.2.10-8.el7.x86_64
dovecot-2.2.10-8.el7.x86_64
dovecot.log output
---------------------
Aug 06 23:19:24 lda: Debug: Loading modules from directory:
/usr/lib64/dovecot
Aug 06 23:19:24 lda: Debug: Module loaded:
/usr/lib64/dovecot/lib90_sieve_plugin.so
Aug 06 23:19:24 lda(user05): Debug: Effective uid=10492, gid=10001,
home=/mnt/mail/user05
Aug 06 23:19:24 lda(user05): Debug: Namespace inbox: type=private, prefix=,
sep=, inbox=yes, hidden=no, list=yes, subscriptions=yes
location=maildir:/mnt/mail//user05/Maildir:INBOX=/mnt/mail//user05/Maildir
Aug 06 23:19:24 lda(user05): Debug: maildir++:
root=/mnt/mail//user05/Maildir, index=, indexpvt=, control=,
inbox=/mnt/mail//user05/Maildir, alt=
Aug 06 23:19:24 lda(user05): Debug: userdb lookup skipped, username taken
from USER environment
Aug 06 23:19:24 lda(user05): Debug: none: root=, index=, indexpvt=,
control=, inbox=, alt=
Aug 06 23:19:24 lda(user05): Debug: Destination address: user05(a)imap.po.com
(source: user@hostname)
Aug 06 23:19:24 lda(user05): Debug: sieve: Pigeonhole version 0.4.2
initializing
Aug 06 23:19:24 lda(user05): Debug: sieve: include: sieve_global_dir is not
set; it is currently not possible to include `:global' scripts.
Aug 06 23:19:24 lda(user05): Debug: sieve: executed before user's personal
Sieve script(1): /etc/dovecot/sieve/before/priority_colors.sieve
Aug 06 23:19:24 lda(user05): Debug: sieve: using the following location for
user's Sieve script: /mnt/mail//user05/.dovecot.sieve;name=main script
Aug 06 23:19:24 lda(user05): Debug: sieve: executed after user's Sieve
script(3): /etc/dovecot/sieve/after/spam.sieve
Aug 06 23:19:24 lda(user05): Debug: sieve: opening script 1 of 3 from
/etc/dovecot/sieve/before/priority_colors.sieve
Aug 06 23:19:24 lda(user05): Debug: sieve: loading script
/etc/dovecot/sieve/before/priority_colors.sieve
Aug 06 23:19:24 lda(user05): Debug: sieve: script binary
/etc/dovecot/sieve/before/priority_colors.svbin successfully loaded
Aug 06 23:19:24 lda(user05): Debug: sieve: binary save: not saving binary
/etc/dovecot/sieve/before/priority_colors.svbin, because it is already
stored
Aug 06 23:19:24 lda(user05): Debug: sieve: executing script from
/etc/dovecot/sieve/before/priority_colors.svbin
Aug 06 23:19:24 lda(user05): Debug: sieve: opening script 2 of 3 from
/mnt/mail//user05/.dovecot.sieve;name=main script
Aug 06 23:19:24 lda(user05): Debug: sieve: loading script
/mnt/mail//user05/.dovecot.sieve;name=main script
Aug 06 23:19:24 lda(user05): Debug: sieve: script binary
/mnt/mail//user05/.dovecot.svbin successfully loaded
Aug 06 23:19:24 lda(user05): Debug: sieve: binary save: not saving binary
/mnt/mail//user05/.dovecot.svbin, because it is already stored
Aug 06 23:19:24 lda(user05): Debug: sieve: executing script from
/mnt/mail//user05/.dovecot.svbin
Aug 06 23:19:24 lda(user05): Error: Index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index: indexid
changed: 1533501509 -> 1464071305
Aug 06 23:19:24 lda(user05): Error: Corrupted transaction log file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index.log seq 3:
indexid changed: 1533501509 -> 1464071305 (sync_offset=168)
Aug 06 23:19:24 lda(user05): Error: Transaction log file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index.log: marked
corrupted
Aug 06 23:19:24 lda: Debug: Loading modules from directory:
/usr/lib64/dovecot
Aug 06 23:19:24 lda(user05): Error: Corrupted index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index:
messages_count too large (2915 > 85)
Aug 06 23:19:24 lda(user05): Warning: fscking index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index
Aug 06 23:19:24 lda(user05): Error: Corrupted index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index:
messages_count too large (2915 > 85)
Aug 06 23:19:24 lda(user05): Warning: fscking index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index
Aug 06 23:19:24 lda(user05): Error: Fixed index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index: log_file_seq
670 -> 2
Aug 06 23:19:24 lda(user05): Error: Fixed index file
/mnt/mail//user05/Maildir/.Queue.A_Sup.group_05/dovecot.index:
messages_count 2915 -> 85
Aug 06 23:19:24 lda(user05): Panic: file mail-index-sync-update.c: line
1013 (mail_index_sync_map): assertion failed: (map->hdr.indexid ==
index->indexid || map->hdr.indexid == 0)
Aug 06 23:19:24 lda(user05): Error: Raw backtrace:
/usr/lib64/dovecot/libdovecot.so.0(+0x6a06e) [0x7f1ada8a106e] ->
/usr/lib64/dovecot/libdovecot.so.0(default_fatal_handler+0x2a)
[0x7f1ada8a10da] -> /usr/lib64/dovecot/libdovecot.so.0(i_fatal+0)
[0x7f1ada85952c] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_sync_map+0x651)
[0x7f1adabda2c1] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_map+0x3e7)
[0x7f1adabcab77] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xb937d)
[0x7f1adabc637d] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0xb9990)
[0x7f1adabc6990] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mail_index_open+0x8c)
[0x7f1adabc6a7c] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(index_storage_mailbox_open+0x87)
[0x7f1adabb79c7] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x4d882)
[0x7f1adab5a882] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x4d963)
[0x7f1adab5a963] -> /usr/lib64/dovecot/libdovecot-storage.so.0(+0x802b4)
[0x7f1adab8d2b4] ->
/usr/lib64/dovecot/libdovecot-storage.so.0(mailbox_open+0x20)
[0x7f1adab8d430] ->
/usr/lib64/dovecot/libdovecot-lda.so.0(mail_deliver_save_open+0xad)
[0x7f1adae3240d] -> /usr/lib64/dovecot/libdovecot-sieve.so.0(+0x3f0a2)
[0x7f1ad9e130a2] ->
/usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0xc5)
[0x7f1ad9e0b0f5] ->
/usr/lib64/dovecot/libdovecot-sieve.so.0(sieve_multiscript_run+0x119)
[0x7f1ad9e1b3c9] -> /usr/lib64/dovecot/lib90_sieve_plugin.so(+0x2e97)
[0x7f1ada062e97] ->
/usr/lib64/dovecot/libdovecot-lda.so.0(mail_deliver+0x4a) [0x7f1adae32b3a]
-> /usr/libexec/dovecot/deliver(main+0x3b5) [0x556390a1e885] ->
/lib64/libc.so.6(__libc_start_main+0xf5) [0x7f1ada48c445] ->
/usr/libexec/dovecot/deliver(+0x318c) [0x556390a1f18c]
dovecot -n output:
===========
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 3.10.0-862.3.2.el7.x86_64 x86_64 CentOS Linux release 7.5.1804
(Core) fuse.encfs
auth_verbose = yes
first_valid_uid = 1000
lda_mailbox_autocreate = yes
log_path = /var/log/dovecot.log
mail_debug = yes
mail_home = /mnt/mail/%d/%n
mail_location =
maildir:/mnt/mail/%d/%n/Maildir:INBOX=/mnt/mail/%d/%n/Maildir
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character
vacation subaddress comparator-i;ascii-numeric relational regex imap4flags
copy include variables body enotify environment mailbox dat
e ihave
mbox_write_locks = fcntl
namespace inbox {
inbox = yes
location =
mailbox Drafts {
special_use = \Drafts
}
mailbox Junk {
special_use = \Junk
}
mailbox Sent {
special_use = \Sent
}
mailbox "Sent Messages" {
special_use = \Sent
}
mailbox Trash {
special_use = \Trash
}
prefix =
}
passdb {
driver = pam
}
plugin {
setting_name = value sieve
sieve = /mnt/mail/%d/%n/.dovecot.sieve
sieve_after = /etc/dovecot/sieve/after/
sieve_before = /etc/dovecot/sieve/before/
sieve_dir = /mnt/mail/%d/%n/sieve
}
protocols = imap pop3 lmtp sieve
service imap-login {
process_limit = 2000
}
service managesieve-login {
inet_listener sieve {
port = 4190
}
process_min_avail = 0
service_count = 1
vsz_limit = 64 M
}
service managesieve {
process_limit = 1024
}
ssl = required
ssl_ca = </etc/CERT/SSL_CA_Bundle.pem
ssl_cert = </etc/CERT/po.com.crt
ssl_key = </etc/CERT/po.com.key
ssl_protocols = !SSLv2 !SSLv3
userdb {
driver = passwd
}
protocol lda {
mail_plugins = " sieve"
}
protocol imap {
mail_max_userip_connections = 20
}
================