Segfault report

Aki Tuomi aki.tuomi at open-xchange.com
Wed Dec 26 11:32:51 EET 2018


> On 26 December 2018 at 11:26 Daniel Miller via dovecot <dovecot at dovecot.org> wrote:
> 
> 
> Ubuntu 18.04, AMD Opteron, Dovecot Version 2.3.3, local file storage.  I 
> believe it's one of my users checking mail remotely via mobile - don't 
> remember if it's an iPhone or Android.
> 
> gdb backtrace:
> Reading symbols from /usr/local/libexec/dovecot/imap...done.
> [New LWP 13852]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `dovecot/imap [kkhany at amfes.c'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0  event_want_debug_log (event=event at entry=0x0, 
> source_filename=source_filename at entry=0x7efd84178aa3 "mail-storage.c",
>      source_linenum=source_linenum at entry=1261) at event-log.c:120
> 120             if (event->forced_debug)
> (gdb) bt full
> #0  event_want_debug_log (event=event at entry=0x0, 
> source_filename=source_filename at entry=0x7efd84178aa3 "mail-storage.c",
>      source_linenum=source_linenum at entry=1261) at event-log.c:120
>          ctx = {type = LOG_TYPE_DEBUG, exit_status = 0, timestamp = 0x0, 
> timestamp_usecs = 0, log_prefix = 0x0,
>            log_prefix_type_pos = 0}
> #1  0x00007efd83dc0986 in event_want_debug (event=event at entry=0x0,
>      source_filename=source_filename at entry=0x7efd84178aa3 
> "mail-storage.c", source_linenum=source_linenum at entry=1261)
>      at event-log.c:140
> No locals.
> #2  0x00007efd840bf270 in mailbox_open_full 
> (box=box at entry=0x55704dc81058, input=input at entry=0x0) at mail-storage.c:1259
>          _tmp_event = 0x0
>          ret = <optimized out>
> #3  0x00007efd840bf57a in mailbox_open_full (input=0x0, 
> box=0x55704dc81058) at mail-storage.c:1368
>          ret = <optimized out>
>          ret = <optimized out>
>          _tmp_event = <optimized out>
>          _data_stack_cur_id = <optimized out>
>          _data_stack_cur_id = <optimized out>
> #4  mailbox_open (box=0x55704dc81058) at mail-storage.c:1349
> No locals.
> #5  0x000055704c36a31b in select_open (readonly=false, 
> mailbox=<optimized out>, ctx=0x55704dc13bc8) at cmd-select.c:288
>          client = 0x55704dc11de8
>          status = {messages = 1830951344, recent = 32766, unseen = 
> 2391910144, uidvalidity = 1475818629, uidnext = 1830951424,
>            first_unseen_seq = 32766, first_recent_uid = 1832402502, 
> last_cached_seq = 32766, highest_modseq = 0,
>            highest_pvt_modseq = 4294967296, keywords = 0x55704dbf1380, 
> permanent_flags = 1280910144, flags = 21872,
>            permanent_keywords = false, allow_new_keywords = false, 
> nonpermanent_modseqs = false, no_modseq_tracking = false,
>            have_guids = false, have_save_guids = true, have_only_guid128 
> = false}
>          flags = <optimized out>
> ---Type <return> to continue, or q <return> to quit---
>          ret = 0
>          client = <optimized out>
>          status = <optimized out>
>          flags = <optimized out>
>          ret = <optimized out>
> #6  cmd_select_full (cmd=<optimized out>, readonly=<optimized out>) at 
> cmd-select.c:417
>          client = 0x55704dc11de8
>          ctx = <optimized out>
>          args = 0x55704dbef690
>          list_args = 0x5d0000006e
>          mailbox = 0x55704dbe1540 "shared"
>          error = 0x55704dc11de8 ""
>          ret = <optimized out>
>          __func__ = "cmd_select_full"
> #7  0x000055704c371e30 in command_exec (cmd=cmd at entry=0x55704dc13a38) at 
> imap-commands.c:201
>          hook = 0x55704dbeb0f0
>          finished = <optimized out>
>          __func__ = "command_exec"
> #8  0x000055704c3701d2 in client_command_input (cmd=<optimized out>, 
> cmd at entry=0x55704dc13a38) at imap-client.c:1152
>          client = 0x55704dc11de8
>          command = <optimized out>
>          __func__ = "client_command_input"
> #9  0x000055704c370274 in client_command_input (cmd=<optimized out>) at 
> imap-client.c:1215
>          client = 0x55704dc11de8
>          command = <optimized out>
>          __func__ = "client_command_input"
> #10 0x000055704c370675 in client_handle_next_command 
> (remove_io_r=<synthetic pointer>, client=0x55704dc11de8) at 
> imap-client.c:1257
> ---Type <return> to continue, or q <return> to quit---
> No locals.
> #11 client_handle_input (client=0x55704dc11de8) at imap-client.c:1271
>          _data_stack_cur_id = 3
>          ret = <optimized out>
>          remove_io = false
>          ret = <optimized out>
>          remove_io = <optimized out>
>          client = 0x55704dc11de8
>          handled_commands = <optimized out>
>          _data_stack_cur_id = <optimized out>
>          ret = <optimized out>
>          remove_io = <optimized out>
>          _data_stack_cur_id = <optimized out>
> #12 0x000055704c370ccc in client_input (client=0x55704dc11de8) at 
> imap-client.c:1317
>          cmd = 0x55704dc0bcb0
>          output = 0x55704dc2d150
>          bytes = 17
>          __func__ = "client_input"
> #13 0x00007efd83ddae0f in io_loop_call_io (io=0x55704dc13910) at 
> ioloop.c:698
>          ioloop = 0x55704dbe9ee0
>          t_id = 2
>          __func__ = "io_loop_call_io"
> #14 0x00007efd83ddc7c6 in io_loop_handler_run_internal 
> (ioloop=ioloop at entry=0x55704dbe9ee0) at ioloop-epoll.c:221
>          ctx = 0x55704dbedc00
>          events = <optimized out>
>          event = <optimized out>
>          list = 0x55704dc13970
> ---Type <return> to continue, or q <return> to quit---
>          io = <optimized out>
>          tv = {tv_sec = 1799, tv_usec = 999365}
>          events_count = <optimized out>
>          msecs = <optimized out>
>          ret = <optimized out>
>          i = 0
>          j = <optimized out>
>          call = <optimized out>
>          __func__ = "io_loop_handler_run_internal"
> #15 0x00007efd83ddaf1c in io_loop_handler_run (ioloop=<optimized out>) 
> at ioloop.c:750
> No locals.
> #16 0x00007efd83ddb138 in io_loop_run (ioloop=0x55704dbe9ee0) at 
> ioloop.c:723
>          __func__ = "io_loop_run"
> #17 0x00007efd83d50873 in master_service_run (service=0x55704dbe9d70, 
> callback=<optimized out>) at master-service.c:775
> No locals.
> #18 0x000055704c362611 in main (argc=<optimized out>, argv=<optimized 
> out>) at main.c:521
>          set_roots = {0x55704c5909a0 <smtp_submit_setting_parser_info>, 
> 0x55704c5906c0 <imap_setting_parser_info>, 0x0}
>          login_set = {auth_socket_path = 0x55704dbe12a8 "\340\022\276MpU",
>            postlogin_socket_path = 0x55704dbe12f0 "m 174.237.3.103 
> SELECT]", postlogin_timeout_secs = 60,
>            callback = 0x55704c37ed60 <login_client_connected>, 
> failure_callback = 0x55704c37e530 <login_client_failed>,
>            request_auth_token = true}
>          service_flags = <optimized out>
>          storage_service_flags = <optimized out>
>          username = 0x0
>          auth_socket_path = <optimized out>
>          c = <optimized out>
>          error = 0x0
> 
> doveconf -n:
> 
> # 2.3.3 (dcead646b): /usr/local/etc/dovecot/dovecot.conf
> # Pigeonhole version 0.5.3 (f018bbab)
> # OS: Linux 4.15.0-43-generic x86_64 Ubuntu 18.04.1 LTS
> # Hostname: bubba.amfes.lan
> auth_cache_size = 4 k
> auth_master_user_separator = *
> auth_mechanisms = plain login
> default_login_user = nobody
> default_vsz_limit = 1 G
> dict {
>    acl = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
> }
> disable_plaintext_auth = no
> imap_client_workarounds = tb-extra-mailbox-sep
> imap_idle_notify_interval = 29 mins
> listen = *
> mail_attachment_hash = %{sha512}
> mail_plugins = fts fts_solr acl zlib virtual
> mail_prefetch_count = 10
> mail_shared_explicit_inbox = 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 index ihave duplicate mime foreverypart extracttext
> namespace inbox {
>    hidden = no
>    inbox = yes
>    list = yes
>    location =
>    mailbox "Deleted Messages" {
>      auto = no
>      autoexpunge = 30 days
>      special_use = \Trash
>    }
>    mailbox Drafts {
>      auto = subscribe
>      special_use = \Drafts
>    }
>    mailbox INBOX/Archives {
>      auto = no
>      special_use = \Archive
>    }
>    mailbox Sent {
>      auto = subscribe
>      special_use = \Sent
>    }
>    mailbox "Sent Items" {
>      auto = no
>      special_use = \Sent
>    }
>    mailbox "Sent Messages" {
>      auto = no
>      special_use = \Sent
>    }
>    mailbox Trash {
>      auto = subscribe
>      autoexpunge = 30 days
>      special_use = \Trash
>    }
>    mailbox virtual/Flagged {
>      comment = All my flagged messages
>      special_use = \Flagged
>    }
>    prefix =
>    separator = /
>    subscriptions = yes
>    type = private
> }
> namespace usershares {
>    list = children
>    location = sdbox:/var/mail/%%d/%%n/sdbox
>    prefix = shared/%%n/
>    separator = /
>    subscriptions = no
>    type = shared
> }
> namespace virtual {
>    list = children
>    location = virtual:/var/mail/%d/%n/virtual
>    prefix = virtual/
>    separator = /
>    subscriptions = no
> }
> passdb {
>    args = /usr/local/etc/dovecot/master-users
>    driver = passwd-file
>    master = yes
> }
> passdb {
>    args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>    driver = ldap
> }
> plugin {
>    acl = vfile:/usr/local/etc/dovecot/global-acls:cache_secs=300
>    acl_shared_dict = proxy::acl
>    fts = solr
>    fts_autoindex = yes
>    fts_solr = break-imap-search url=http://127.0.0.1:8983/solr/dovecot/
>    mailbox_alias_new = Sent Messages
>    mailbox_alias_new2 = Sent Items
>    mailbox_alias_new3 = Deleted Messages
>    mailbox_alias_old = Sent
>    mailbox_alias_old2 = Sent
>    mailbox_alias_old3 = Trash
>    sieve = file:~/sieve;active=~/.dovecot.sieve
> }
> protocols = imap lmtp sieve
> service auth {
>    unix_listener /var/spool/postfix/private/auth {
>      group = postfix
>      mode = 0660
>      user = postfix
>    }
>    unix_listener auth-userdb {
>      group = mail
>      mode = 0600
>      user = vmail
>    }
> }
> service dict {
>    unix_listener dict {
>      group = mail
>      mode = 0660
>      user = vmail
>    }
> }
> service imap-login {
>    process_min_avail = 10
>    service_count = 1
> }
> service imap-postlogin {
>    executable = script-login /usr/local/etc/dovecot/post-login.sh
>    user = $default_internal_user
> }
> service imap {
>    executable = imap imap-postlogin
> }
> service lmtp {
>    process_min_avail = 5
>    unix_listener /var/spool/postfix/private/dovecot-lmtp {
>      group = mail
>      mode = 0666
>      user = vmail
>    }
> }
> service managesieve-login {
>    inet_listener sieve {
>      port = 4190
>    }
>    inet_listener sieve_deprecated {
>      port = 2000
>    }
>    process_min_avail = 0
>    service_count = 1
> }
> ssl_cert = </etc/letsencrypt/live/mail.amfes.com/fullchain.pem
> ssl_dh = # hidden, use -P to show it
> ssl_key = # hidden, use -P to show it
> userdb {
>    driver = prefetch
> }
> userdb {
>    args = /usr/local/etc/dovecot/dovecot-ldap.conf.ext
>    driver = ldap
> }
> verbose_proctitle = yes
> protocol lmtp {
>    mail_plugins = fts fts_solr acl zlib virtual sieve
>    postmaster_address = postmaster at amfes.com
> }
> protocol lda {
>    mail_plugins = fts fts_solr acl zlib virtual sieve
> }
> protocol imap {
>    mail_max_userip_connections = 50
>    mail_plugins = fts fts_solr acl zlib virtual imap_acl imap_zlib 
> mailbox_alias
> }
> local 192.168.0.2 {
>    protocol imap {
>      ssl_cert = </etc/letsencrypt/live/mail.amfes.com/fullchain.pem
>      ssl_key = # hidden, use -P to show it
>    }
> }
> 
> 
> -- 
> Daniel
>

I believe this is fixed with https://github.com/dovecot/core/commit/4fcd4e8fad45dcaa637e4cb36a9f99204d69badf.patch on v2.3.4.

Aki


More information about the dovecot mailing list