segfault in lib20_expire_plugin

Mario Arnold listserv at xtlv.cn
Tue Feb 21 16:04:13 UTC 2017


Hello,

after upgrade from [2.2.devel (34f7cc3)] to [2.2.devel (b3443fc)] dovecot
stops with a segfault:

Fatal: master: service(imap): child 21179 killed with signal 11 (core dumped)
imap[21179]: segfault at 0 ip 00000000f726eef1 sp 00000000ffa3b050 error 4 in
lib20_expire_plugin.so[f726d000+3000]

gdb /usr/lib/dovecot/imap /var/_core/core_imap-11-5000-5000-21179
GNU gdb (Debian 7.12-6) 7.12.0.20161007-git
Reading symbols from /usr/lib/dovecot/imap...Reading symbols from
/usr/lib/debug/.build-id/99/6f1cf1a262cf5738f075ec046d9a7d344d9693.debug...done.
done.
[New LWP 21179]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
Core was generated by `dovecot/imap imap-postlogin'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  expire_mail_namespaces_created (ns=0xf814db90) at expire-plugin.c:428
428     expire-plugin.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  expire_mail_namespaces_created (ns=0xf814db90) at expire-plugin.c:428
        user = 0xf814d028
        v = 0x0
        db = 0xf815b960
        error = 0xf81522c0 "Trash"
#1  0xf75f9b21 in hook_mail_namespaces_created (namespaces=0xf8151008) at
mail-storage-hooks.c:304
        _data_stack_cur_id = 4
        hooks__foreach_end = 0xf814dae8
        hooks = 0xf814dad4
#2  0xf75ebf9f in mail_namespaces_init_finish (namespaces=0xf8151008,
error_r=0xffa3b23c) at mail-namespace.c:383
        _data_stack_cur_id = 3
        ns = 0x0
        prefixless_found = false
        __FUNCTION__ = "mail_namespaces_init_finish"
#3  0xf75ec1bb in mail_namespaces_init (user=0xf814d028, error_r=0xffa3b23c)
at mail-namespace.c:438
        mail_set = 0xf814d118
        ns_set = <optimized out>
        unexpanded_ns_set = <optimized out>
        namespaces = 0xf8151008
        ns_p = <optimized out>
        i = <optimized out>
        count = <optimized out>
        count2 = <optimized out>
        __FUNCTION__ = "mail_namespaces_init"
#4  0xf75fcd30 in mail_storage_service_init_post (ctx=<optimized out>,
error_r=<optimized out>, mail_user_r=<optimized out>, priv=<optimized out>,
user=<optimized out>) at mail-storage-service.c:728
        mail_set = 0xf814d118
        mail_user = 0xf814d028
#5  mail_storage_service_next_real (mail_user_r=<optimized out>,
user=<optimized out>, ctx=<optimized out>) at mail-storage-service.c:1426
        len = 4162116496
        priv = {uid = 5000, gid = 5000, uid_source = 0xf76afeb4 "userdb
lookup", gid_source = 0xf76afeb4 "userdb lookup", home = 0xf813ea71
"/srv/vmail/xtlv.de/1000", chroot = 0xf8130a20 ""}
        error = 0xf75b9934 "4\210\024"
#6  mail_storage_service_next (ctx=0xf814d118, user=0xf813da90,
mail_user_r=0xffa3b304) at mail-storage-service.c:1444
No locals.
#7  0xf75fd0ff in mail_storage_service_lookup_next (ctx=0xf81399b0,
input=0xffa3b368, user_r=0xffa3b300, mail_user_r=0xffa3b304,
error_r=0xffa3b360) at mail-storage-service.c:1477
        user = 0xf813da90
        ret = <optimized out>
#8  0xf77832c9 in client_create_from_input (input=0xffa3b368, fd_in=15,
fd_out=15, client_r=0xffa3b35c, error_r=0xffa3b360) at main.c:228
        user = 0x81a4
        mail_user = 0xc34a5
        ns = 0xf814d000
        client = 0xffa3b304
        imap_set = 0xffa3b360
        lda_set = 0xffa3b304
        errstr = 0xf814db90 ""
        mail_error = 49663
#9  0xf77834ea in login_client_connected (login_client=0xf813b450,
username=0xf81300c8 "1000 at xtlv.de", extra_fields=0xf81300ac) at main.c:316
        input = {module = 0xf778b616 "imap", service = 0xf778b616 "imap",
username = 0xf81300c8 "1000 at xtlv.de", session_id = 0xf813b4c0
"doleKgxJ3s8l6zee", session_id_prefix = 0x0, session_create_time = 0, local_ip = {
            family = 2, u = {ip6 = {__in6_u = {__u6_addr8 = "T&K\217", '\000'
<repeats 11 times>, __u6_addr16 = {9812, 36683, 0, 0, 0, 0, 0, 0}, __u6_addr32
= {2404066900, 0, 0, 0}}}, ip4 = {s_addr = 2404066900}}}, remote_ip = {
            family = 2, u = {ip6 = {__in6_u = {__u6_addr8 = "%\353\067\236",
'\000' <repeats 11 times>, __u6_addr16 = {60197, 40503, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {2654464805, 0, 0, 0}}}, ip4 = {s_addr = 2654464805}}},
          local_port = 0, remote_port = 0, userdb_fields = 0xf81300ac,
flags_override_add = (unknown: 0), flags_override_remove = (unknown: 0),
no_userdb_lookup = 0, debug = 0}
        client = 0xf750331c <t_malloc0+44>
        flags = <optimized out>
        error = 0xf8130130 "auth_token=3763fd48bfdfeea2a3617cbda148915c19e125fa"
        __FUNCTION__ = "login_client_connected"
#10 0xf749b0d1 in master_login_auth_finish (client=0xf813b450,
auth_args=0xf814d000, auth_args at entry=0xf81300a8) at master-login.c:210
        login = 0xf813ab88
        service = 0xf81383e8
        __FUNCTION__ = "master_login_auth_finish"
#11 0xf749b6a9 in master_login_postlogin_input (pl=0xf813d720) at
master-login.c:284
        login = 0xf813ab88
        buf =
"1000 at xtlv.de\tquota_rule=*:storage=5M\tuid=5000\tgid=5000\thome=/srv/vmail/xtlv.de/1000\tauth_token=3763fd48bfdfeea2a3617cbda148915c19e125fa\nQ\345td",
'\000' <repeats 20 times>,
"\006\000\000\000\020\000\000\000R\345td\260.\000\000\260>\000\000\260>\000\000P\001\000\000P\001\000\000\004\000\000\000\001\000\000\000"...
        auth_args = 0xf81300a8
        p = 0xf81300c0
        ret = -1
        fd = -1
---Type <return> to continue, or q <return> to quit---
#12 0xf751b73e in io_loop_call_io (io=0xf813b358) at ioloop.c:599
        ioloop = 0xf81384b8
        t_id = 2
        __FUNCTION__ = "io_loop_call_io"
#13 0xf751cece in io_loop_handler_run_internal (ioloop=0xf81384b8) at
ioloop-epoll.c:223
        ctx = 0xf813a210
        list = 0xf813b390
        io = <optimized out>
        tv = {tv_sec = 59, tv_usec = 999219}
        events_count = <optimized out>
        msecs = <optimized out>
        ret = 1
        i = <optimized out>
        j = 0
        call = <optimized out>
        __FUNCTION__ = "io_loop_handler_run_internal"
#14 0xf751b7ef in io_loop_handler_run (ioloop=0xf81384b8) at ioloop.c:648
No locals.
#15 0xf751b999 in io_loop_run (ioloop=0xf81384b8) at ioloop.c:623
        __FUNCTION__ = "io_loop_run"
#16 0xf749d985 in master_service_run (service=0xf81383e8, callback=0xf7782b60
<client_connected>) at master-service.c:641
No locals.
#17 0xf7766ece in main (argc=2, argv=0xffa3bab4) at main.c:460
        set_roots = {0xf779d2a0 <imap_setting_parser_info>, 0xf7732ac0
<lda_setting_parser_info>, 0x0}
        login_set = {auth_socket_path = 0xf8130030 "ta_rule=*:storage=5M",
postlogin_socket_path = 0xf8130060 "/vmail/xtlv.de/1000",
postlogin_timeout_secs = 60, callback = 0xf7783430 <login_client_connected>,
          failure_callback = 0xf7782cc0 <login_client_failed>,
request_auth_token = 1}
        service_flags = <optimized out>
        storage_service_flags = <optimized out>
        username = <optimized out>
        auth_socket_path = <optimized out>
        c = <optimized out>

doveconf -n
# 2.2.devel (b3443fc): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.4.devel (0d78a30)
# OS: Linux 3.2.64.stk32 x86_64 Debian 9.0
auth_debug = yes
auth_debug_passwords = yes
auth_failure_delay = 5 secs
auth_master_user_separator = *
auth_mechanisms = digest-md5 cram-md5
auth_verbose = yes
auth_verbose_passwords = plain
debug_log_path = /var/log/dovecot/dov_debug.log
deliver_log_format = msgid=%m: %$: DeliveryTime=%{delivery_time}:
LMTPSessionTime=%{session_time}
dict {
  expire = db:/var/lib/dovecot/expire.db
}
doveadm_password =  # hidden, use -P to show it
doveadm_port = 1090
imap_logout_format = in=%i out=%o MailHeaderR=%{fetch_hdr_count}
MailBodyR=%{fetch_body_count} MailDel=%{deleted} MailExpung=%{expunged}
MailTrash=%{trashed}
lmtp_rcpt_check_quota = yes
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e %c %k
mail_debug = yes
mail_gid = vmail
mail_location = sdbox:%h/sdbox
mail_plugins = " quota mail_log notify expire zlib acl notify replication"
mail_privileged_group = vmail
mail_uid = vmail
mailbox_list_index = 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 {
  ignore_on_failure = no
  inbox = no
  list = children
  location = sdbox:%%h/sdbox
  prefix = shared/%%u/
  separator = /
  subscriptions = yes
  type = shared
}
namespace inbox {
  hidden = no
  ignore_on_failure = no
  inbox = yes
  list = yes
  location =
  mailbox Drafts {
    auto = subscribe
    special_use = \Drafts
  }
  mailbox Sent {
    auto = subscribe
    special_use = \Sent
  }
  mailbox Trash {
    auto = subscribe
    special_use = \Trash
  }
  prefix =
  separator = /
  subscriptions = yes
  type = private
}
passdb {
  args = scheme=PLAIN username_format=%Lu /etc/dovecot/user_pw/passwd
  driver = passwd-file
}
plugin {
  acl = vfile
  acl_shared_dict = file:/srv/vmail/shared-db/shared-mailboxes
  expire = Trash 2h
  expire_cache = yes
  expire_dict = proxy::expire
  mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename
save mailbox_create
  mail_log_fields = uid box msgid size subject
  mail_replica = tcps:mx00.vtlx.cn
  quota = dict:User quota::file:%h/dovecot-quota
  quota_exceeded_message = Die Mailbox des Empfaengers ist voll -- Quota
exceeded -- Please contact <postmaster at xtlv.cn>
  quota_grace = 12%%
  quota_rule = *:storage=350M
  quota_rule2 = Trash:storage=+15%%
  quota_status_nouser = DUNNO
  quota_status_overquota = "552 5.5.2 Die Mailbox des Empfaengers ist voll ##
Mailbox is full ## Please contact <postmaster at xtlv.cn>"
  quota_status_success = DUNNO
  quota_warning = storage=95%% quota-warning 95 %u
  quota_warning2 = storage=90%% quota-warning 90 %u
  quota_warning3 = storage=80%% quota-warning 80 %u
  quota_warning4 = storage=70%% quota-warning 70 %u
  sieve = file:~/sieve;active=~/.dovecot.sieve
  zlib_save = gz
  zlib_save_level = 6
}
pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m/%{deleted_bytes}, size=%s
postmaster_address = postmaster at xtlv.cn
protocols = " imap lmtp sieve pop3"
service aggregator {
  fifo_listener replication-notify-fifo {
    mode = 0660
    user = vmail
  }
  unix_listener replication-notify {
    mode = 0660
    user = vmail
  }
}
service auth {
  unix_listener /var/spool/postfix/private/auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  unix_listener auth-userdb {
    group = vmail
    mode = 0600
    user = vmail
  }
}
service config {
  unix_listener config {
    mode = 0600
    user = vmail
  }
}
service dict {
  unix_listener dict {
    group = vmail
    mode = 0600
    user = vmail
  }
}
service doveadm {
  inet_listener {
    address = 84.38.75.143, 2a00:5080:1:16::8
    port = 1090
    ssl = yes
  }
}
service imap-login {
  inet_listener imap {
    port = 0
  }
  inet_listener imaps {
    address = 84.38.75.143
    port = 993
    ssl = yes
  }
}
service imap-postlogin {
  executable = script-login -d /usr/local/sbin/dov-last-login-imap.sh
  user = $default_internal_user
}
service imap {
  executable = imap imap-postlogin
}
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    address = 84.38.75.143
    port = 4190
  }
}
service pop3-login {
  inet_listener pop3 {
    port = 0
  }
  inet_listener pop3s {
    address = 84.38.75.143
    port = 995
    ssl = yes
  }
}
service pop3-postlogin {
  executable = script-login -d /usr/local/sbin/dov-last-login-pop3.sh
  user = $default_internal_user
}
service pop3 {
  executable = pop3 pop3-postlogin
}
service quota-status {
  client_limit = 1
  executable = quota-status -p postfix
  unix_listener /var/spool/postfix/private/quota-status {
    group = postfix
    mode = 0660
    user = postfix
  }
}
service quota-warning {
  executable = script /usr/local/bin/quota-warning.sh
  unix_listener quota-warning {
    group = vmail
    mode = 0660
    user = vmail
  }
  user = root
}
service replicator {
  process_min_avail = 1
  unix_listener replicator-doveadm {
    mode = 0600
    user = vmail
  }
}
ssl = required
ssl_ca = </etc/dovecot/certs/sub.class2.server.ca.pem
ssl_cert = </etc/dovecot/keys/vtlx.cn-wc-2015.crt
ssl_cipher_list =
ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:!RC4:!aNULL:!eNULL:!LOW:!EXPORT:!DES:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!NULL:!DH:!EDH:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_client_ca_file = /etc/dovecot/certs/ca-bundle-2016.pem
ssl_dh_parameters_length = 2048
ssl_key =  # hidden, use -P to show it
ssl_parameters_regenerate = 1 weeks
ssl_prefer_server_ciphers = yes
ssl_protocols = !SSLv2 !SSLv3
ssl_verify_client_cert = yes
userdb {
  args = username_format=%Lu /etc/dovecot/user_pw/passwd
  driver = passwd-file
}
protocol lmtp {
  mail_plugins = " quota mail_log notify expire zlib acl notify replication
quota sieve"
}
protocol imap {
  mail_max_userip_connections = 12
  mail_plugins = " quota mail_log notify expire zlib acl notify replication
imap_quota imap_zlib imap_acl"
}
protocol pop3 {
  mail_plugins = " quota mail_log notify expire zlib acl notify replication quota"
}

-- 
Persönlich IS0-Zertifiziert in angewandter Kompetenzsimulation.


More information about the dovecot mailing list