[Dovecot] Segmentation fault in libdovecot-storage.so

Francesco Fiore ffiore at babel.it
Mon Feb 10 10:58:33 UTC 2014


Hi,
I obtain continuosly segmentation fault of processes pop3 and imap, with
version 2.2.10.
This is the error for the pop3 process (but for imap is is the same):

2014-02-10 11:06:22 pop3(xxxxxxx at yyyyyyyy.zz): Fatal: master:
service(pop3): child 23804 killed with signal 11 (core dumped)

This is the kernel log:

Feb 10 11:06:22 pecpop5 kernel: pop3[23804]: segfault at 7fa42a3f4070 ip
00007fa41ff849cd sp 00007fff78dedfa0 error 4 in
libdovecot-storage.so.0.0.0[7fa41fefa000+d9000]

-------------------------------------------------------
# /opt/dovecot-2.2.10/sbin/dovecot --version
2.2.10
-------------------------------------------------------
# cat /etc/redhat-release
CentOS release 6.4 (Final)
-------------------------------------------------------
# uname -r
2.6.32-358.23.2.el6.x86_64
-------------------------------------------------------
Filesystem: NFS
-------------------------------------------------------
# /opt/dovecot-2.2.10/sbin/dovecot -n
# 2.2.10: /opt/dovecot-2.2.10/etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-358.23.2.el6.x86_64 x86_64 CentOS release 6.4 (Final)
auth_debug = yes
auth_master_user_separator = *
auth_username_format =
default_vsz_limit = 512 M
disable_plaintext_auth = no
dotlock_use_excl = no
first_valid_gid = 101
first_valid_uid = 102
imap_id_send =
import_environment = TZ
info_log_path = /var/log/dovecot.log
log_path = /var/log/dovecot.log
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_fsync = always
mail_gid = 101
mail_location = maildir:%h/Maildir
mail_max_userip_connections = 50
mail_nfs_index = yes
mail_nfs_storage = yes
mail_plugins = quota expire fts fts_lucene mail_log notify
mail_uid = 102
maildir_broken_filename_sizes = yes
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope
encoded-character vacation subaddress comparator-i;ascii-numeric
relational regex imap4flags copy include variables body enotify
environment mailbox date ihave
mbox_write_locks = fcntl
mmap_disable = yes
namespace inbox {
    inbox = yes
    location =
    mailbox Drafts {
      special_use = \Drafts
    }
    mailbox Junk {
      special_use = \Junk
    }
    mailbox Sent {
      special_use = \Sent
    }
    mailbox "Sent Messages" {
      special_use = \Sent
    }
    mailbox Trash {
      special_use = \Trash
    }
    prefix = INBOX.
    separator = .
    subscriptions = yes
    type = private
}
passdb {
    args = /opt/dovecot-2.2.10/etc/dovecot/passwd.masterusers
    driver = passwd-file
    master = yes
}
passdb {
    args = /opt/dovecot-2.2.10/etc/dovecot/dovecot-ldap.conf
    driver = ldap
}
passdb {
    args = /opt/dovecot-2.2.10/etc/dovecot/dovecot-ldap-multiuser.conf
    driver = ldap
    master = yes
}
plugin {
    fts = lucene
    fts_lucene =
    mail_log_events = delete undelete expunge copy mailbox_delete
mailbox_rename
    mail_log_fields = uid box msgid size
    quota = maildir
    quota_rule2 = INBOX.Trash:storage=+100M
}
protocols = imap pop3
service anvil {
    client_limit = 3000
}
service auth {
    client_limit = 4096
    unix_listener auth-userdb {
      mode = 0600
    }
}
service imap-login {
    inet_listener imap {
      address = 10.11.47.49
      port = 143
    }
    inet_listener imaps {
      address = 10.11.47.49
      port = 993
      ssl = yes
    }
    process_limit = 2500
    process_min_avail = 5
}
service imap {
    drop_priv_before_exec = yes
    process_limit = 2500
    process_min_avail = 5
}
service managesieve-login {
    inet_listener sieve {
      port = 4190
    }
    process_min_avail = 0
    service_count = 1
    vsz_limit = 64 M
}
service managesieve {
    drop_priv_before_exec = yes
    process_limit = 1024
}
service pop3-login {
    inet_listener pop3 {
      address = 10.11.47.49
      port = 110
    }
    inet_listener pop3s {
      address = 10.11.47.49
      port = 995
      ssl = yes
    }
    process_limit = 300
    process_min_avail = 5
}
service pop3 {
    drop_priv_before_exec = yes
    process_limit = 300
    process_min_avail = 5
}
ssl_cert = </opt/dovecot-2.2.10/certs/imapd.pem
ssl_key = </opt/dovecot-2.2.10/certs/imapd.pem
userdb {
    args = /opt/dovecot-2.2.10/etc/dovecot/dovecot-ldap.conf
    driver = ldap
}
protocol lmtp {
    mail_plugins = quota expire fts fts_lucene mail_log notify sieve
}
protocol lda {
    mail_plugins = quota expire fts fts_lucene mail_log notify sieve
}
protocol imap {
    mail_plugins = quota imap_quota mail_log notify
}
protocol pop3 {
    mail_plugins = quota mail_log notify
    pop3_uidl_format = UID%u-%v
}

-------------------------------------------------------
(gdb) bt full
#0  0x00007f351537e9cd in mail_cache_header_fields_read (cache=0xf16740)
at mail-cache-fields.c:369
          field_hdr = 0x7f35157ed040
          field = {name = 0x0, idx = 0, type =
MAIL_CACHE_FIELD_FIXED_SIZE, field_size = 0, decision =
MAIL_CACHE_DECISION_NO, last_used = 0}
          last_used = 0x7f35157ed04c
          sizes = 0x7f35217ed04c
          types = 0x7f352d7ed04c <Address 0x7f352d7ed04c out of bounds>
          decisions = 0x7f35307ed04c <Address 0x7f35307ed04c out of bounds>
          p = 0x7f35337ed04c <Address 0x7f35337ed04c out of bounds>
          names = <value optimized out>
          end = 0x7f355e7ed040 <Address 0x7f355e7ed040 out of bounds>
          orig_key = 0x7f35155e8715 "I\211\303L\213L$0L\213D$(H\213|$
H\213t$\030H\213T$\020H\213L$\bH\213\004$H\203\304HA\377\343ffffff.\017\037\204"
          fidx = <value optimized out>
          new_fields_count = <value optimized out>
          dec = <value optimized out>
          max_drop_time = 1388530800
          offset = 64
          i = <value optimized out>
#1  0x00007f351537c664 in mail_cache_open_and_verify (cache=0xf16740) at
mail-cache.c:497
          ret = 1
#2  0x00007f351537fe4c in mail_cache_field_exists (view=0xf16110,
seq=<value optimized out>, field=<value optimized out>) at
mail-cache-lookup.c:345
          data = <value optimized out>
          __FUNCTION__ = "mail_cache_field_exists"
#3  0x00007f351537ff64 in mail_cache_lookup_field (view=0xf16110,
dest_buf=0x7fff96c80030, seq=52, field_idx=0) at mail-cache-lookup.c:413
          field_def = <value optimized out>
          iter = {view = 0x7f3500000001, remap_counter = 0, seq = 0, rec
= 0x1, pos = 355448944, rec_size = 32565, offset = 2048, trans_next_idx
= 0, stop = 0, failed = 0,
            memory_appends_checked = 0, disk_appends_checked = 0}
          field = {field_idx = 15818688, size = 0, data = 0x0, offset = 52}
          ret = <value optimized out>
#4  0x00007f3515367999 in index_mail_cache_lookup_field (mail=0xf21910,
buf=<value optimized out>, field_idx=<value optimized out>) at
index-mail.c:68
          ret = -1765278176
#5  0x00007f35153685c5 in index_mail_get_fixed_field (mail=0xf21910,
field=<value optimized out>, data=<value optimized out>, data_size=4) at
index-mail.c:130
          field_idx = 0
          buf = {data = 0xf21b14, used = 0, priv = {0xf21b14, 0x0, 0x4,
0x0, 0x0}}
          __FUNCTION__ = "index_mail_get_fixed_field"
#6  0x00007f3515368843 in index_mail_update_access_parts (mail=0xf21910)
at index-mail.c:1385
          _mail = 0xf21910
          data = 0xf21a80
          cache_fields = 0xf164a0
          cache_view = 0xf16110
          hdr = <value optimized out>
          input = 0x7f35150a0227
#7  0x00007f3515368a56 in index_mail_set_seq (_mail=0xf21910, seq=52,
saving=<value optimized out>) at index-mail.c:1521
          mail = 0xf21910
#8  0x00007f351536e72b in search_more_with_mail (ctx=0xf1f620,
mail_r=0x7fff96c80190) at index-search.c:1507
          _ctx = 0xf1f620
          box = 0xf12030
          cost2 = <value optimized out>
          match = <value optimized out>
          ret = -1
          imail = 0xf21910
          cost1 = 0
#9  search_more_with_prefetching (ctx=0xf1f620, mail_r=0x7fff96c80190)
at index-search.c:1579
          _data_stack_cur_id = 4
          ret = <value optimized out>
          mail = 0xf21910
          mails = <value optimized out>
---Type <return> to continue, or q <return> to quit---
#10 search_more (ctx=0xf1f620, mail_r=0x7fff96c80190) at index-search.c:1650
          imail = <value optimized out>
          ret = -1765278176
#11 0x00007f351536ee28 in index_storage_search_next_nonblock
(_ctx=0xf1f620, mail_r=0xf0f9a8, tryagain_r=0x7fff96c801ff) at
index-search.c:1674
          ctx = 0xf1f620
          mail = <value optimized out>
          mailp = <value optimized out>
          seq = <value optimized out>
          ret = <value optimized out>
#12 0x00007f3515348507 in mailbox_search_next_nonblock (ctx=0xf1f620,
mail_r=0xf0f9a8, tryagain_r=<value optimized out>) at mail-storage.c:1787
          box = <value optimized out>
#13 0x00007f3515348566 in mailbox_search_next (ctx=0xf1f620,
mail_r=0xf0f9a8) at mail-storage.c:1773
          tryagain = false
#14 0x0000000000418a0e in imap_fetch_more_int (ctx=0xf0f948,
cancel=false) at imap-fetch.c:479
          state = 0xf0f998
          client = 0xf0efb0
          handlers = 0xf0fc78
          count = 5
          ret = <value optimized out>
          __FUNCTION__ = "imap_fetch_more_int"
#15 0x0000000000418b61 in imap_fetch_more (ctx=0xf0f948, cmd=0xf0f810)
at imap-fetch.c:556
          ret = <value optimized out>
          __FUNCTION__ = "imap_fetch_more"
#16 0x000000000040d75d in cmd_fetch (cmd=0xf0f810) at cmd-fetch.c:284
          client = 0xf0efb0
          ctx = 0xf0f948
          args = 0xefaa38
          next_arg = <value optimized out>
          list_arg = 0x0
          search_args = 0x0
          qresync_args = {qresync_sample_seqset = 0xf0f7f0,
qresync_sample_uidset = 0x7f35150ae158}
          messageset = 0xefaba0 "52:84"
          send_vanished = <value optimized out>
          ret = <value optimized out>
#17 0x0000000000416fbd in command_exec (cmd=0xf0f810) at imap-commands.c:158
          hook = 0xef80f0
          ret = <value optimized out>
#18 0x00000000004160e0 in client_command_input (cmd=0xf0f810) at
imap-client.c:780
          client = 0xf0efb0
          command = <value optimized out>
          __FUNCTION__ = "client_command_input"
#19 0x00000000004161cd in client_command_input (cmd=0xf0f810) at
imap-client.c:841
          client = 0xf0efb0
          command = <value optimized out>
          __FUNCTION__ = "client_command_input"
#20 0x000000000041644d in client_handle_next_command (client=0xf0efb0)
at imap-client.c:879
No locals.
#21 client_handle_input (client=0xf0efb0) at imap-client.c:891
          _data_stack_cur_id = 3
          ret = false
          remove_io = false
          handled_commands = false
          __FUNCTION__ = "client_handle_input"
#22 0x00000000004167bf in client_input (client=0xf0efb0) at
imap-client.c:933
          cmd = <value optimized out>
          output = 0xf08100
---Type <return> to continue, or q <return> to quit---
          bytes = 77
          __FUNCTION__ = "client_input"
#23 0x00007f351509b336 in io_loop_call_io (io=0xf081d0) at ioloop.c:388
          ioloop = 0xef7720
          t_id = 2
#24 0x00007f351509c3a7 in io_loop_handler_run (ioloop=<value optimized
out>) at ioloop-epoll.c:220
          ctx = 0xef83d0
          events = <value optimized out>
          event = 0xef9230
          list = 0xef9e00
          io = <value optimized out>
          tv = {tv_sec = 1799, tv_usec = 999407}
          msecs = <value optimized out>
          ret = 1
          i = <value optimized out>
          call = <value optimized out>
          __FUNCTION__ = "io_loop_handler_run"
#25 0x00007f351509b2a8 in io_loop_run (ioloop=0xef7720) at ioloop.c:412
          __FUNCTION__ = "io_loop_run"
#26 0x00007f3515049f73 in master_service_run (service=0xef75b0,
callback=<value optimized out>) at master-service.c:566
No locals.
#27 0x000000000041fd07 in main (argc=1, argv=0xef7390) at main.c:400
          set_roots = {0x427c60, 0x0}
          login_set = {auth_socket_path = 0xeef060 "\210\360",
<incomplete sequence \356>, postlogin_socket_path = 0x0,
postlogin_timeout_secs = 60,
            callback = 0x41ff00 <login_client_connected>,
failure_callback = 0x41fea0 <login_client_failed>, request_auth_token = 1}
          service_flags = <value optimized out>
          storage_service_flags = <value optimized out>
          username = <value optimized out>
          c = <value optimized out>

Thanks
Francesco



More information about the dovecot mailing list