Hello all,
I have a problem with an incosistent mdbox:
Oct 24 10:43:23 two dovecot: imap-login: Login: user=<...>, method=PLAIN,
rip=..., lip=..., mpid=4977, TLS
Oct 24 10:43:23 two dovecot: imap([email protected]): Error: mdbox map
.../mdbox/storage/dovecot.map.index corrupted: Unexpectedly lost INBOX uid=638
map_uid=809891
Oct 24 10:43:23 two dovecot: imap([email protected]): Error: mdbox map
.../mdbox/storage/dovecot.map.index corrupted: Unexpectedly lost INBOX uid=638
map_uid=809891
Oct 24 10:43:23 two dovecot: imap([email protected]): Disconnected: Internal
error occurred. Refer to server log for more information. [2012-10-24 10:43:23]
bytes=115/53726
Oct 24 10:43:23 two dovecot: imap([email protected]): Warning: mdbox
.../mdbox/storage: Inconsistency in map index (467,31960 != 467,36768)
Oct 24 10:43:23 two dovecot: imap([email protected]): Warning: mdbox
.../mdbox/storage: rebuilding indexes
Oct 24 10:45:19 two dovecot: imap([email protected]): Panic: file
mdbox-storage-rebuild.c: line 773 (rebuild_update_refcounts): assertion failed:
(map_uid < msgs[i]->map_uid)
Oct 24 10:45:19 two dovecot: imap([email protected]): Error: Raw backtrace:
/usr/lib/dovecot/libdovecot.so.0(+0x380ca) [0x7f99cf35b0ca] ->
/usr/lib/dovecot/libdovecot.so.0(+0x3810e) [0x7f99cf35b10e] -> /usr/li
b/dovecot/libdovecot.so.0(i_fatal+0) [0x7f99cf334a67] ->
/usr/lib/dovecot/libdovecot-storage.so.0(mdbox_storage_rebuild_in_context+0x10a5)
[0x7f99cf5f42d5] -> /usr/lib/dovecot/libdovecot-storage.so.0(mdbox_s
torage_rebuild+0x24) [0x7f99cf5f4414] ->
/usr/lib/dovecot/libdovecot-storage.so.0(+0x53565) [0x7f99cf5f4565] ->
/usr/lib/dovecot/libdovecot-storage.so.0(mailbox_close+0x1a) [0x7f99cf5c8caa]
-> /usr/lib/dovec
ot/libdovecot-storage.so.0(mailbox_free+0x13) [0x7f99cf5c8cf3] ->
dovecot/imap(client_destroy+0x109) [0x7f99cfaa69e9] ->
dovecot/imap(client_input+0xaa) [0x7f99cfaa6dba] ->
/usr/lib/dovecot/libdovecot.so.0(i
o_loop_call_io+0x48) [0x7f99cf366c98] ->
/usr/lib/dovecot/libdovecot.so.0(io_loop_handler_run+0xa7) [0x7f99cf367d27] ->
/usr/lib/dovecot/libdovecot.so.0(io_loop_run+0x28) [0x7f99cf366c28] ->
/usr/lib/dovecot
/libdovecot.so.0(master_service_run+0x13) [0x7f99cf354e33] ->
dovecot/imap(main+0x304) [0x7f99cfa9e554] ->
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed) [0x7f99cef8576d] ->
dovecot/imap(+0x95e5) [0
x7f99cfa9e5e5]
Oct 24 10:45:19 two dovecot: master: Error: service(imap): child 4977 killed
with signal 6 (core dumps disabled)
I use:
Dovecot 2.0.19-0ubuntu1
Ubuntu 12.04, x86-64, Kernel 3.2.0-32-generic
local XFS filesystem for the mdbox
The problem appeared out of nowhere. Many messages been continously
delivered to this mailbox on this installation since May 2012, and the
mdbox was only accessed with deliver and imap/pop3 from dovecot. About
four hours after the problem initially appeared, I did a hard reset of
the system because it was unresponsive. The error message is exactly
the same before and after the hard reset. The problem is triggered by
both IMAP access and dovecot deliver access.
The whole mdbox is 6.6 GiB large and I guess that it contains about
300k-600k messages. It's an archive of public mailing lists, so I could
give access to the files.
Can anybody say something about this? May the mdbox be repaired?
Regards,
Milan Holzäpfel
--
Milan Holzäpfel <[email protected]>
# 2.0.19: /etc/dovecot/dovecot.conf
# OS: Linux 3.2.0-32-generic x86_64 Ubuntu 12.04.1 LTS
auth_mechanisms = plain login
dict {
quota = mysql:/etc/dovecot/dict-quota-sql.conf
}
listen = *, [::]
mail_access_groups = dovecot-dict
mail_plugins = quota
mdbox_preallocate_space = yes
mdbox_rotate_size = 20 M
namespace {
inbox = yes
location =
prefix =
separator = .
type = private
}
passdb {
args = /etc/dovecot/sql-passdb.conf
driver = sql
}
plugin {
antispam_backend = dspam
antispam_debug_target = syslog
antispam_spam = Spam;INBOX/Spam
antispam_trash = Trash;INBOX/Trash
antispam_verbose_debug = 1
quota = dict:User Quota::proxy::quota
sieve = ~/dovecot-sieve
}
protocols = " imap pop3"
service auth {
unix_listener /var/spool/postfix/private/dovecot-auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-client {
group = root
mode = 0660
user = root
}
unix_listener auth-master {
group = root
mode = 0600
user = root
}
}
service dict {
unix_listener dict {
group = dovecot-dict
mode = 0660
}
}
ssl_cert = </etc/dovecot/ssl-imap.pem
ssl_key = </etc/dovecot/ssl-imap.pem
userdb {
args = /etc/dovecot/sql-userdb-iterate.conf
driver = sql
}
protocol imap {
mail_plugins = quota imap_quota antispam
ssl_cert = </etc/dovecot/ssl-imap.pem
ssl_key = </etc/dovecot/ssl-imap.pem
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/sql-userdb-username.conf
driver = sql
}
}
protocol pop3 {
mail_plugins = quota
ssl_cert = </etc/dovecot/ssl-pop3.pem
ssl_key = </etc/dovecot/ssl-pop3.pem
userdb {
driver = prefetch
}
userdb {
args = /etc/dovecot/sql-userdb-username.conf
driver = sql
}
}
protocol lda {
mail_plugins = quota sieve
postmaster_address = [email protected]
userdb {
args = /etc/dovecot/sql-userdb-mailaddress.conf
driver = sql
}
}
protocol doveadm {
userdb {
args = /etc/dovecot/sql-userdb-username.conf
driver = sql
}
}
protocol smtp {
passdb {
args = /etc/dovecot/sql-passdb-smtp.conf
driver = sql
}
passdb {
deny = yes
driver = static
}
}