[Dovecot] dovecot-lda segfaults (debug)
Hello list,
When trying to deliver a big message (which over-quota user limit), I always get segmentation faults. Others common delivers work fine. This only happens with messages, which over-quota user limit.
Here is more details:
/var/log/maillog: ... ** user@fakedomain.ua R=virtual_user T=dovecot_virtual_delivery: Child process of dovecot_virtual_delivery transport (running command "/usr/local/libexec/dovecot/deliver -d $local_part@$domain -f $sender_address") was terminated by signal 11 (segmentation fault) ...
/var/log/messages: ... kernel: pid 27409 (deliver), uid 26: exited on signal 11 ...
dovecot -n:
# 1.2.14: /usr/local/etc/dovecot.conf # OS: FreeBSD 7.3-RELEASE-p2 amd64 protocols: imap pop3 imaps pop3s managesieve disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable(default): /usr/local/libexec/dovecot/imap-login login_executable(imap): /usr/local/libexec/dovecot/imap-login login_executable(pop3): /usr/local/libexec/dovecot/pop3-login login_executable(managesieve): /usr/local/libexec/dovecot/managesieve-login login_log_format_elements: user=<%u> method=%m rip=%r %c login_processes_count: 10 valid_chroot_dirs: /var/mail verbose_proctitle: yes first_valid_uid: 26 first_valid_gid: 6 mail_privileged_group: mail mail_location: mbox:~/mail:INBOX=/var/mail/virtual/%Ld/%Ln mail_debug: yes mbox_write_locks: fcntl mbox_min_index_size: 100 mbox_very_dirty_syncs: yes mail_executable(default): /usr/local/libexec/dovecot/imap mail_executable(imap): /usr/local/libexec/dovecot/imap mail_executable(pop3): /usr/local/libexec/dovecot/pop3 mail_executable(managesieve): /usr/local/libexec/dovecot/managesieve mail_plugins(default): quota imap_quota mail_plugins(imap): quota imap_quota mail_plugins(pop3): quota mail_plugins(managesieve): mail_plugin_dir(default): /usr/local/lib/dovecot/imap mail_plugin_dir(imap): /usr/local/lib/dovecot/imap mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3 mail_plugin_dir(managesieve): /usr/local/lib/dovecot/managesieve imap_client_workarounds(default): delay-newmail netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(imap): delay-newmail netscape-eoh tb-extra-mailbox-sep imap_client_workarounds(pop3): imap_client_workarounds(managesieve): pop3_no_flag_updates(default): no pop3_no_flag_updates(imap): no pop3_no_flag_updates(pop3): yes pop3_no_flag_updates(managesieve): no pop3_enable_last(default): no pop3_enable_last(imap): no pop3_enable_last(pop3): yes pop3_enable_last(managesieve): no pop3_lock_session(default): no pop3_lock_session(imap): no pop3_lock_session(pop3): yes pop3_lock_session(managesieve): no pop3_client_workarounds(default): pop3_client_workarounds(imap): pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh pop3_client_workarounds(managesieve): lda: postmaster_address: postmaster@fakedomain.ua mail_plugins: quota quota_full_tempfail: no sendmail_path: /usr/local/sbin/exim log_path: /var/log/dovecot-deliver-errors.log info_log_path: /var/log/dovecot-deliver.log auth default: mechanisms: plain login default_realm: fakedomain.ua username_format: %Lu debug: yes passdb: driver: sql args: /usr/local/etc/dovecot-mysql.conf userdb: driver: sql args: /usr/local/etc/dovecot-mysql.conf socket: type: listen client: path: /var/run/dovecot/auth-client mode: 432 master: path: /var/run/dovecot/auth-master mode: 384 user: mailnull group: mail plugin: quota: dict:user::proxy::quotadict dict: quotadict: mysql:/usr/local/etc/dovecot-dict-quota.conf
/var/log/dovecot-deliver.log (before segfaults):
Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: Loading modules from directory: /usr/local/lib/dovecot/lda Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: Module loaded: /usr/local/lib/dovecot/lda/lib10_quota_plugin.so Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: auth input: home=/var/mail/virtual/home/fakedomain.ua/user Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: auth input: uid=26 Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: auth input: gid=6 Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: auth input: quota_rule=*:bytes=10485760 Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: Quota root: name=user backend=dict args=:proxy::quotadict Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: Quota rule: root=user mailbox=* bytes=10485760 messages=0 Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: dict quota: user=user@fakedomain.ua, uri=proxy::quotadict, noenforcing=0 Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: mbox: data=/var/mail/virtual/home/fakedomain.ua/user/mail:INBOX=/var/mail/virtual /fakedomain.ua/user Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: fs: root=/var/mail/virtual/home/fakedomain.ua/user/mail, index=, control=, inbox= /var/mail/virtual/fakedomain.ua/user Oct 05 14:55:43 deliver(user@fakedomain.ua): Info: dict quota: user=user@fakedomain.ua, uri=proxy::quotadict, noenforcing=0
gdb --args /usr/local/libexec/dovecot/deliver -d user@fakedomain.ua -p ./big_message.eml
GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"...(no debugging symbols found)... (gdb) r Starting program: /usr/local/libexec/dovecot/deliver -d user@fakedomain.ua -p ./big_mess.eml (no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)...(no debugging symbols found)... Program received signal SIGSEGV, Segmentation fault. 0x0000000000483340 in message_parser_parse_next_block () (gdb) bt full #0 0x0000000000483340 in message_parser_parse_next_block () No symbol table info available. #1 0x0000000000444fe4 in index_mail_cache_parse_continue () No symbol table info available. #2 0x0000000000446251 in index_mail_cache_parse_deinit () No symbol table info available. #3 0x000000000043c110 in mbox_save_finish () No symbol table info available. #4 0x000000000043c1b3 in mbox_save_cancel () No symbol table info available. #5 0x00000000004565a0 in mailbox_save_cancel () No symbol table info available. #6 0x0000000000456835 in mailbox_save_begin () No symbol table info available. #7 0x00000000004529e4 in mail_storage_copy () No symbol table info available. #8 0x0000000800e09ee1 in quota_copy () from /usr/local/lib/dovecot/lda/lib10_quota_plugin.so No symbol table info available. #9 0x00000000004565c2 in mailbox_copy () No symbol table info available. #10 0x0000000000418b6a in deliver_save () No symbol table info available. #11 0x000000000041a82d in main () No symbol table info available. (gdb) quit
If you need any additional information, please tell me.
Best regards, Mike
On Wed, 2010-10-13 at 17:05 +0300, Michael M Galapchuk wrote:
# 1.2.14: /usr/local/etc/dovecot.conf .. #0 0x0000000000483340 in message_parser_parse_next_block () No symbol table info available. #1 0x0000000000444fe4 in index_mail_cache_parse_continue () No symbol table info available. #2 0x0000000000446251 in index_mail_cache_parse_deinit () No symbol table info available. #3 0x000000000043c110 in mbox_save_finish () No symbol table info available.
Looks like the bug I fixed in v2.0 a month ago. Wonder why more people haven't complained about this. http://hg.dovecot.org/dovecot-1.2/rev/1b40e217e020 should fix this.
Yes, this patch fixed that problem. Thank you!
# 1.2.14: /usr/local/etc/dovecot.conf .. #0 0x0000000000483340 in message_parser_parse_next_block () No symbol table info available. #1 0x0000000000444fe4 in index_mail_cache_parse_continue () No symbol table info available. #2 0x0000000000446251 in index_mail_cache_parse_deinit () No symbol table info available. #3 0x000000000043c110 in mbox_save_finish () No symbol table info available.
Looks like the bug I fixed in v2.0 a month ago. Wonder why more people haven't complained about this. http://hg.dovecot.org/dovecot-1.2/rev/1b40e217e020 should fix this.
Best regards, Mike
participants (2)
-
Michael M Galapchuk
-
Timo Sirainen