[Dovecot] Segmentation fault in libdovecot-storage.so

Francesco Fiore ffiore at babel.it
Thu Feb 13 09:35:06 UTC 2014


Hi all!
Is there any news for this problem?
How can I be of help?
Currently this issue is very critical for me. I get about 10-15 segfault 
per minute...

Thanks
Francesco

On 10/02/2014 11:58, Francesco Fiore wrote:
> 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