[Dovecot] Panic with mail_log activated
Hi, We get intermitend deliver-errors when we have activated the mail_log plugin. The installed version is dovecot-2.0-beta5. Below, the error we get:
Jun 02 21:58:11 lda(xxx@uib.es): Panic: file mail-log-plugin.c: line 364 (mail_log_mail_transaction_commit): assertion failed: (ret) Jun 02 21:58:11 lda(xxx@uib.es): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0 [0x31c4a35dd0] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x37) [0x31c4a35eb7] -> /usr/lib/dovecot/libdovecot.so.0 [0x31c4a352f8] -> /usr/lib/dovecot/lib20_mail_log_plugin.so [0x2ba85f9a6369] -> /usr/lib/dovecot/lib15_notify_plugin.so(notify_contexts_mail_transaction_commit+0x76) [0x2ba85f7a3716] -> /usr/lib/dovecot/lib15_notify_plugin.so [0x2ba85f7a3b49] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x3d) [0x31c4e2d5bd] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x255) [0x31c5205585] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xd3) [0x31c5205903] -> /usr/libexec/dovecot/deliver(main+0x63a) [0x402c0a] -> /lib64/libc.so.6(__libc_start_main+0xf4) [0x324d01d994] -> /usr/libexec/dovecot/deliver [0x402509]
it's a bug or a misconfiguration?
thanks
Xavier
On 06/03/2010 09:47 AM Xavier Pons wrote:
Hi, We get intermitend deliver-errors when we have activated the mail_log plugin. The installed version is dovecot-2.0-beta5. Below, the error we get:
Jun 02 21:58:11 lda(xxx@uib.es): Panic: file mail-log-plugin.c: line 364 (mail_log_mail_transaction_commit): assertion failed: (ret) Jun 02 21:58:11 lda(xxx@uib.es): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0 [0x31c4a35dd0] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x37) [0x31c4a35eb7] -> /usr/lib/dovecot/libdovecot.so.0 [0x31c4a352f8] -> /usr/lib/dovecot/lib20_mail_log_plugin.so [0x2ba85f9a6369] -> /usr/lib/dovecot/lib15_notify_plugin.so(notify_contexts_mail_transaction_commit+0x76) [0x2ba85f7a3716] -> /usr/lib/dovecot/lib15_notify_plugin.so [0x2ba85f7a3b49] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x3d) [0x31c4e2d5bd] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x255) [0x31c5205585] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xd3) [0x31c5205903] -> /usr/libexec/dovecot/deliver(main+0x63a) [0x402c0a] -> /lib64/libc.so.6(__libc_start_main+0xf4) [0x324d01d994] -> /usr/libexec/dovecot/deliver [0x402509]
it's a bug or a misconfiguration?
As long as you don't provide doveconf -n
output, I'm sure it's a
configuration issue. ;-)
Regards, Pascal
The trapper recommends today: c01dcafe.1015409@localdomain.org
You're right! Here is the output of doveconf -n:
# 2.0.beta5: /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-164.11.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.4 (Tikanga) auth_socket_path = /var/run/dovecot/auth-userdb auth_verbose = yes base_dir = /var/run/dovecot/ first_valid_uid = 96 lock_method = dotlock log_path = /var/log/dovecot.log mail_access_groups = vmail mail_gid = 96 mail_location = maildir:~/Maildir mail_nfs_index = yes mail_nfs_storage = yes mail_plugins = acl quota mail_log notify mail_privileged_group = mail mail_uid = 96 maildir_stat_dirs = yes mmap_disable = yes namespace { inbox = yes location = prefix = separator = / type = private } namespace { hidden = no inbox = no list = children location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%n/ prefix = shared/%%n/ separator = / subscriptions = no type = shared } namespace { hidden = no list = children location = maildir:/home/vmail/public/:INDEX=~/Maildir/public prefix = public/ separator = / subscriptions = no type = public } passdb { args = /etc/dovecot/dovecot-ldap-pass.conf.ext driver = ldap } passdb { args = scheme=plain username_format=%n /etc/dovecot/imap.passwd driver = passwd-file } plugin { acl = vfile acl_shared_dict = file:/home/vmail/dovecot/shared-mailboxes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size mail_log_group_events = no quota = maildir:User quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=100M quota_warning = storage=80%% /usr/bin/quota-warning.sh 80 sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } postmaster_address = xavier.pons@uib.es protocols = imap pop3 managesieve sendmail_path = /usr/lib/sendmail service auth { unix_listener auth-userdb { group = vmail mode = 0660 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } } service managesieve-login { inet_listener managesieve { port = 4190 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } } ssl = required ssl_cert = </etc/ssl/certs/d1.crt ssl_key = </etc/ssl/private/d1_privatekey.pem userdb { driver = prefetch } userdb { args = /etc/dovecot/dovecot-ldap-users.conf.ext driver = ldap } userdb { args = username_format=%n /etc/dovecot/imap.passwd driver = passwd-file } protocol lda { info_log_path = /var/log/dovecot-deliver.log log_path = /var/log/dovecot-deliver-errors.log mail_plugins = $mail_plugins sieve } protocol imap { imap_capability = IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE ACL RIGHTS=texk QUOTA imap_client_workarounds = delay-newmail netscape-eoh mail_max_userip_connections = 10 mail_plugins = $mail_plugins imap_acl imap_quota } protocol managesieve { mail_max_userip_connections = 10 mail_plugins = managesieve_implementation_string = Dovecot managesieve_max_line_length = 65536 managesieve_sieve_capability = fileinto reject } protocol pop3 { mail_max_userip_connections = 3 mail_plugins = $mail_plugins pop3_client_workarounds = outlook-no-nuls oe-ns-eoh }
Thanks
Xavier
Pascal Volk escribió:
On 06/03/2010 09:47 AM Xavier Pons wrote:
Hi, We get intermitend deliver-errors when we have activated the mail_log plugin. The installed version is dovecot-2.0-beta5. Below, the error we get:
Jun 02 21:58:11 lda(xxx@uib.es): Panic: file mail-log-plugin.c: line 364 (mail_log_mail_transaction_commit): assertion failed: (ret) Jun 02 21:58:11 lda(xxx@uib.es): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0 [0x31c4a35dd0] -> /usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x37) [0x31c4a35eb7] -> /usr/lib/dovecot/libdovecot.so.0 [0x31c4a352f8] -> /usr/lib/dovecot/lib20_mail_log_plugin.so [0x2ba85f9a6369] -> /usr/lib/dovecot/lib15_notify_plugin.so(notify_contexts_mail_transaction_commit+0x76) [0x2ba85f7a3716] -> /usr/lib/dovecot/lib15_notify_plugin.so [0x2ba85f7a3b49] -> /usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_changes+0x3d) [0x31c4e2d5bd] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver_save+0x255) [0x31c5205585] -> /usr/lib/dovecot/libdovecot-lda.so.0(mail_deliver+0xd3) [0x31c5205903] -> /usr/libexec/dovecot/deliver(main+0x63a) [0x402c0a] -> /lib64/libc.so.6(__libc_start_main+0xf4) [0x324d01d994] -> /usr/libexec/dovecot/deliver [0x402509]
it's a bug or a misconfiguration?
As long as you don't provide
doveconf -n
output, I'm sure it's a configuration issue. ;-)Regards, Pascal
On 06/03/2010 10:08 AM Xavier Pons wrote:
You're right! Here is the output of doveconf -n:
# 2.0.beta5: /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-164.11.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.4 (Tikanga) … log_path = /var/log/dovecot.log mail_access_groups = vmail mail_gid = 96 mail_location = maildir:~/Maildir mail_nfs_index = yes mail_nfs_storage = yes mail_plugins = acl quota mail_log notify mail_privileged_group = mail mail_uid = 96 maildir_stat_dirs = yes mmap_disable = yes namespace { inbox = yes location = prefix = separator = / type = private } namespace { hidden = no inbox = no list = children location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%n/ prefix = shared/%%n/ separator = / subscriptions = no type = shared } namespace { hidden = no list = children location = maildir:/home/vmail/public/:INDEX=~/Maildir/public prefix = public/ separator = / subscriptions = no type = public } … plugin { acl = vfile acl_shared_dict = file:/home/vmail/dovecot/shared-mailboxes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size mail_log_group_events = no quota = maildir:User quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=100M quota_warning = storage=80%% /usr/bin/quota-warning.sh 80 sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } … protocol lda { info_log_path = /var/log/dovecot-deliver.log log_path = /var/log/dovecot-deliver-errors.log mail_plugins = $mail_plugins sieve } …
Please stop top-posting.
Hm, I'm not using namespaces, ACLs or NFS. The mail_log plugin is working fine so far. Tested with dovecot-lda and imap. Also for an account with userdb filed 'mail=maildir:~/Maildir'. This are my settings; doveconf -n -m mail -x:
# 2.0.beta5 (3b25ca20f005): /usr/local/dovecot20/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-3-amd64 x86_64 Debian squeeze/sid debug_log_path = /usr/local/dovecot20/var/log/dovecot.debug info_log_path = /usr/local/dovecot20/var/log/dovecot.info log_path = /usr/local/dovecot20/var/log/dovecot.log mail_debug = yes mail_location = mdbox:~/mdbox:ALT=~/alt_mdbox mail_plugins = mail_log notify plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = dict:user::proxy::quota quota_rule = *:storage=10M:messages=40 quota_rule2 = Trash:storage=+50%% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocol lda { info_log_path = /usr/local/dovecot20/var/log/dovecot-lda.info log_path = /usr/local/dovecot20/var/log/dovecot-lda.log mail_plugins = mail_log notify sieve } protocol lmtp { mail_plugins = mail_log notify sieve }
Your dovecot-deliver.log and dovecot-deliver-errors.log are writable for the user with uid 96? Any SELinux warnings in your logs? Can update to the latest code from the hg repo and try again?
Regards, Pascal
The trapper recommends today: c01dcafe.1015410@localdomain.org
El 03/06/2010 11:37, Pascal Volk escribió:
On 06/03/2010 10:08 AM Xavier Pons wrote:
You're right! Here is the output of doveconf -n:
# 2.0.beta5: /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-164.11.1.el5 x86_64 Red Hat Enterprise Linux Server release 5.4 (Tikanga) … log_path = /var/log/dovecot.log mail_access_groups = vmail mail_gid = 96 mail_location = maildir:~/Maildir mail_nfs_index = yes mail_nfs_storage = yes mail_plugins = acl quota mail_log notify mail_privileged_group = mail mail_uid = 96 maildir_stat_dirs = yes mmap_disable = yes namespace { inbox = yes location = prefix = separator = / type = private } namespace { hidden = no inbox = no list = children location = maildir:%%h/Maildir:INDEX=~/Maildir/shared/%%n/ prefix = shared/%%n/ separator = / subscriptions = no type = shared } namespace { hidden = no list = children location = maildir:/home/vmail/public/:INDEX=~/Maildir/public prefix = public/ separator = / subscriptions = no type = public } … plugin { acl = vfile acl_shared_dict = file:/home/vmail/dovecot/shared-mailboxes mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size mail_log_group_events = no quota = maildir:User quota quota_rule = *:storage=1G quota_rule2 = Trash:storage=100M quota_warning = storage=80%% /usr/bin/quota-warning.sh 80 sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } … protocol lda { info_log_path = /var/log/dovecot-deliver.log log_path = /var/log/dovecot-deliver-errors.log mail_plugins = $mail_plugins sieve } …
Please stop top-posting.
Hm, I'm not using namespaces, ACLs or NFS. The mail_log plugin is working fine so far. Tested with dovecot-lda and imap. Also for an account with userdb filed 'mail=maildir:~/Maildir'. This are my settings; doveconf -n -m mail -x:
# 2.0.beta5 (3b25ca20f005): /usr/local/dovecot20/etc/dovecot/dovecot.conf # OS: Linux 2.6.32-3-amd64 x86_64 Debian squeeze/sid debug_log_path = /usr/local/dovecot20/var/log/dovecot.debug info_log_path = /usr/local/dovecot20/var/log/dovecot.info log_path = /usr/local/dovecot20/var/log/dovecot.log mail_debug = yes mail_location = mdbox:~/mdbox:ALT=~/alt_mdbox mail_plugins = mail_log notify plugin { mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename mail_log_fields = uid box msgid size quota = dict:user::proxy::quota quota_rule = *:storage=10M:messages=40 quota_rule2 = Trash:storage=+50%% sieve = ~/.dovecot.sieve sieve_dir = ~/sieve } protocol lda { info_log_path = /usr/local/dovecot20/var/log/dovecot-lda.info log_path = /usr/local/dovecot20/var/log/dovecot-lda.log mail_plugins = mail_log notify sieve } protocol lmtp { mail_plugins = mail_log notify sieve }
Your dovecot-deliver.log and dovecot-deliver-errors.log are writable for the user with uid 96? Any SELinux warnings in your logs? Can update to the latest code from the hg repo and try again?
Regards, Pascal
Yes, the vmail user (uid 96) has permitions to write on dovecot-deliver.log and dovecot-deliver-errors.log. The mail_login plugin is working normally, but at sporadic periods dump this kind of errors and refuse to deliver the mail. I don't have the SELinux enabled in this machine, and don't have any warnings/errors in other log files.
Now, I haven't used the hg repository sources, but I could try with the last version...
Thanks, Xavier
On to, 2010-06-03 at 09:47 +0200, Xavier Pons wrote:
Jun 02 21:58:11 lda(xxx@uib.es): Panic: file mail-log-plugin.c: line 364 (mail_log_mail_transaction_commit): assertion failed: (ret)
I don't really see why this would happen, but this at least makes it just log uid=error rather than crashing: http://hg.dovecot.org/dovecot-2.0/rev/e575fd47c3a5
participants (3)
-
Pascal Volk
-
Timo Sirainen
-
Xavier Pons