Dovecot lda Panic: file mail-transaction-log.c

Alessio Cecchi alessio at skye.it
Tue Dec 16 16:07:50 UTC 2014


Hi,

I'm running:

# 2.2.15: /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.6 (3e924b1b6c5c+)
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.10

with mailbox in Maildir format and LDA to delivery new email (+ sieve 
for filter)

on the server there is an email account that is used for "archive", it 
only receives messages and nobody connects to it. Today dovecot was 
unable to delibery, via LDA, email in the Maildir and in the log i found 
the following error.

Login via POP or IMAP works fine but is impossibile to delivery new 
email (the INBOX have about 135000 emails). I have delete all files in 
Maildir except cur/ new/ tmp/ and rebuild the dovecot cache, but the 
error is the same.

Could be a sieve problem? In the user's home there was a file called 
.dovecot.lda-dupes.lock

What is wrong?

Dec 16 06:53:25 mx02eeh dovecot: lda(user at domain.com): sieve: 
msgid=<SGVW2KMAINxVCnMARiN00013a72 at smtp.comune>, from=sgv at pippo.com, 
subject="xxxx": stored mail into mailbox 'INBOX'

Dec 16 06:53:25 mx02eeh dovecot: lda(user at domain.com): Panic: file 
mail-transaction-log.c: line 271 (mail_transaction_log_rotate): 
assertion failed:
(file->locked)

Dec 16 06:53:25 mx02eeh dovecot: lda(user at domain.com): Error: Raw 
backtrace: /usr/lib/dovecot/libdovecot.so.0(+0x75e1a) [0x7f8f2aca4e1a] 
-> /usr/lib/
dovecot/libdovecot.so.0(i_syslog_fatal_handler+0x33) [0x7f8f2aca4ee3] -> 
/usr/lib/dovecot/libdovecot.so.0(i_error+0) [0x7f8f2ac562bf] -> 
/usr/lib/dovecot/lib
dovecot-storage.so.0(+0xd6fc5) [0x7f8f2afe5fc5] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mail_index_write+0x1f5) 
[0x7f8f2afe4e15] -> /usr/lib/dovecot/libd
ovecot-storage.so.0(mail_index_sync_commit+0x2c4) [0x7f8f2afdc854] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(+0x55b08) [0x7f8f2af64b08] -> 
/usr/lib/dovecot
/libdovecot-storage.so.0(maildir_transaction_save_commit_pre+0x40f) 
[0x7f8f2af5f43f] -> /usr/lib/dovecot/libdovecot-storage.so.0(+0xb7038) 
[0x7f8f2afc6038] -
 > 
/usr/lib/dovecot/libdovecot-storage.so.0(mail_index_transaction_commit_full+0x9f) 
[0x7f8f2afd3c6f] -> /usr/lib/dovecot/libdovecot-storage.so.0(index_transa
ction_commit+0xa5) [0x7f8f2afc5bf5] -> 
/usr/lib/dovecot/lib10_quota_plugin.so(+0xbd82) [0x7f8f29c7ed82] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(+0x99ca6)
  [0x7f8f2afa8ca6] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x4f) 
[0x7f8f2af91b9f] -> /usr/lib/dovecot/libdovecot-st
orage.so.0(mailbox_transaction_commit+0x16) [0x7f8f2af91c56] -> 
/usr/lib/dovecot/libdovecot-sieve.so.0(+0x44047) [0x7f8f29616047] -> 
/usr/lib/dovecot/libdove
cot-sieve.so.0(+0x3a829) [0x7f8f2960c829] -> 
/usr/lib/dovecot/libdovecot-sieve.so.0(sieve_result_execute+0x1e2) 
[0x7f8f2960cb72] -> /usr/lib/dovecot/libdovec
ot-sieve.so.0(sieve_execute+0x56) [0x7f8f2961d936] -> 
/usr/lib/dovecot/lib90_sieve_plugin.so(+0x2f2e) [0x7f8f2986df2e] -> 
/usr/lib/dovecot/libdovecot-lda.so.
0(mail_deliver+0x45) [0x7f8f2b2313c5] -> 
/usr/libexec/dovecot/dovecot-lda(main+0x6ac) [0x402eec] -> 
/lib/libc.so.6(__libc_start_main+0xfd) [0x7f8f2a8ebcad] -
 > /usr/libexec/dovecot/dovecot-lda() [0x4025c9]

My dovecot config:

# 2.2.15: /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.6 (3e924b1b6c5c+)
# OS: Linux 2.6.32-5-amd64 x86_64 Debian 6.0.10
auth_cache_negative_ttl = 10 mins
auth_cache_size = 10 M
auth_cache_ttl = 20 mins
auth_worker_max_count = 50
deliver_log_format = msgid=%m, from=%f, subject="%s": %$
dict {
   acl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
   expire = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
   sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
}
disable_plaintext_auth = no
first_valid_gid = 89
first_valid_uid = 89
imap_client_workarounds = delay-newmail tb-extra-mailbox-sep tb-lsub-flags
imap_idle_notify_interval = 29 mins
imap_logout_format = in=%i out=%o session=<%{session}>
last_valid_gid = 89
last_valid_uid = 89
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
listen = *
mail_fsync = always
mail_location = maildir:~/Maildir
mail_plugins = quota acl expire
mailbox_list_index = yes
maildir_very_dirty_syncs = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character subaddress comparator-i;ascii-numeric relational regex 
imap4flags copy include variables body enotify environment mailbox date 
ihave duplicate vnd.dovecot.duplicate
mmap_disable = yes
namespace {
   list = children
   location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%u
   prefix = shared/%%n/
   separator = /
   subscriptions = no
   type = shared
}
namespace inbox {
   inbox = yes
   location =
   mailbox Drafts {
     auto = subscribe
     special_use = \Drafts
   }
   mailbox Sent {
     auto = subscribe
     special_use = \Sent
   }
   mailbox "Sent Messages" {
     special_use = \Sent
   }
   mailbox Spam {
     auto = subscribe
     special_use = \Junk
   }
   mailbox Trash {
     auto = subscribe
     special_use = \Trash
   }
   prefix =
   separator = /
}
passdb {
   args = /etc/dovecot/dovecot-deny-sql.conf.ext
   deny = yes
   driver = sql
}
passdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
plugin {
   acl = vfile
   acl_shared_dict = proxy::acl
   expire = Trash
   expire2 = Spam
   expire_dict = proxy::expire
   quota = maildir:UserQuota
   quota2 = dict:Quota Usage::noenforcing:proxy::sqlquota
   quota_grace = 10M
   quota_rule2 = Trash:storage=+100M
   quota_warning = storage=95%% quota-warning 95 %u
   quota_warning2 = storage=80%% quota-warning 80 %u
   sieve = ~/.dovecot.sieve
   sieve_before = /etc/dovecot/sieve/before.sieve
   sieve_dir = ~/sieve
   sieve_extensions = +vnd.dovecot.duplicate -vacation
}
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
pop3_fast_size_lookups = yes
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, 
bytes=%i/%o, session=<%{session}>
protocols = imap pop3 sieve
sendmail_path = /var/qmail/bin/sendmail
service auth {
   client_limit = 6500
   unix_listener auth-userdb {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service dict {
   process_limit = 500
   unix_listener dict {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
}
service imap-login {
   process_min_avail = 4
   service_count = 0
}
service imap-postlogin {
   executable = script-login /etc/dovecot/scripts/imap-postlogin.sh
   unix_listener imap-postlogin {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
   user = vpopmail
}
service imap {
   process_limit = 5000
   service_count = 100
}
service managesieve-login {
   inet_listener sieve {
     port = 4190
   }
}
service pop3-login {
   process_min_avail = 4
   service_count = 0
}
service pop3-postlogin {
   executable = script-login /etc/dovecot/scripts/pop3-postlogin.sh
   unix_listener pop3-postlogin {
     group = vchkpw
     mode = 0660
     user = vpopmail
   }
   user = vpopmail
}
service pop3 {
   process_limit = 1024
   service_count = 100
}
service quota-warning {
   executable = script /etc/dovecot/scripts/quota-warning.sh
   unix_listener quota-warning {
     user = vpopmail
   }
   user = vpopmail
}
ssl_cert = </etc/dovecot/ssl/wildcard.net.pem
ssl_key = </etc/dovecot/ssl/wildcard.net.key
ssl_protocols = !SSLv2 !SSLv3
submission_host = 127.0.0.1
userdb {
   driver = prefetch
}
userdb {
   args = /etc/dovecot/dovecot-sql.conf.ext
   driver = sql
}
verbose_proctitle = yes
protocol lda {
   mail_location = maildir:~/Maildir:INDEX=MEMORY
   mail_plugins = quota acl expire sieve
}
protocol imap {
   mail_max_userip_connections = 15
   mail_plugins = quota acl expire imap_quota imap_acl
}
protocol sieve {
   mail_max_userip_connections = 2
}
protocol pop3 {
   mail_max_userip_connections = 5
}

# cat /etc/dovecot/sieve/before.sieve
require ["vnd.dovecot.duplicate", "fileinto", "mailbox"];
if header :matches "X-Spam-Status" "Yes, *" {
     fileinto "Spam";
}

if header :contains "Subject" "PROVA Filtro 123"
{
     fileinto "Spam";
}

if duplicate :seconds 60 {
     fileinto "Trash";
}



More information about the dovecot mailing list