[Dovecot] dovecot-lda segfaults on over-quota

Michael M Galapchuk Michael.Galapchuk at fcbank.com.ua
Tue Oct 5 17:57:28 EEST 2010


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 at 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 at 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 at fakedomain.ua): Info: Loading modules from directory: /usr/local/lib/dovecot/lda
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: Module loaded: /usr/local/lib/dovecot/lda/lib10_quota_plugin.so
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: auth input: home=/var/mail/virtual/home/fakedomain.ua/user
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: auth input: uid=26
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: auth input: gid=6
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: auth input: quota_rule=*:bytes=10485760
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: Quota root: name=user backend=dict args=:proxy::quotadict
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: Quota rule: root=user mailbox=* bytes=10485760 messages=0
Oct 05 14:55:43 deliver(user at fakedomain.ua): Info: dict quota: user=user at fakedomain.ua, uri=proxy::quotadict, noenforcing=0
Oct 05 14:55:43 deliver(user at 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 at 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 at fakedomain.ua): Info: dict quota: user=user at fakedomain.ua, uri=proxy::quotadict, noenforcing=0

-----------

gdb --args /usr/local/libexec/dovecot/deliver -d user at 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 michael.galapchuk at fcbank.com.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



More information about the dovecot mailing list