auth-worker: Error: double free or corruption (fasttop)

Marcel Lorenz lorenz.marcel at web.de
Sun Jan 27 10:58:03 EET 2019


Hi,

Sorry fo my late answer. The hole disty are stripped. I must first
rebuild all with debug symbols.
Here comes the complete gdb backtrace:

(gdb) bt full
#0  0x00007f49738486f7 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f497384a091 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007f497389220f in __libc_message () from /lib64/libc.so.6
No symbol table info available.
#3  0x00007f4973899b5a in malloc_printerr () from /lib64/libc.so.6
No symbol table info available.
#4  0x00007f497389fcb4 in free () from /lib64/libc.so.6
No symbol table info available.
#5  0x00007f4974e2c7bd in mysql_close (mysql=0x55c7d97dd860) at
/usr/src/mariadb-10.3.11/libmariadb/libmariadb/mariadb_lib.c:1939
No locals.
#6  0x000055c7d7b15f4c in driver_sqlpool_disconnect (_db=0x55c7d97dca10)
at driver-sqlpool.c:590
         conn__foreach_end = 0x55c7d97dd010
         db = 0x55c7d97dca10
         conn = 0x55c7d97dd000
#7  0x000055c7d7b07cd5 in db_sql_unref (_conn=0x55c7d97d4678) at
db-sql.c:128
         conn = 0x55c7d97dbe28
#8  0x000055c7d7afefa9 in userdb_deinit (userdb=0x55c7d97d4650) at
userdb.c:191
         idx = 0
         __func__ = "userdb_deinit"
#9  0x000055c7d7ae31a9 in auth_deinit (auth=0x55c7d97d4f40) at
auth.c:335
         passdb = <optimized out>
         userdb = 0x55c7d97d5068
         passdb = <optimized out>
         userdb = <optimized out>
#10 auths_deinit () at auth.c:433
         auth__foreach_end = 0x55c7d97dbda0
         auth = 0x55c7d97dbd98
#11 0x000055c7d7ae1d73 in main_deinit () at main.c:271
         l = <optimized out>
         l = <optimized out>
         l_end = <optimized out>
#12 main (argc=<optimized out>, argv=<optimized out>) at main.c:398
         c = <optimized out>
(gdb)

Hope it helps...

Regards,
Marcel


Am 20.1.2019 12:51, schrieb Stephan Bosch:

> Op 16/01/2019 om 12:35 schreef Marcel Lorenz:
>
>> Dear list,
>>
>> since the distri upgrade to glibc 2.28, i can't build working dovecot
>> binary's.
>> Older with glibc 2.27 are working. The distri is LFS based.
>> MariaDB 10.2.18 and 10.3.11 makes no difference. Having this on
>> different systems.
>>
>> Messages Log:
>> Dec 19 17:10:38 test kernel: traps: auth[30189] general protection
>> ip:7f4b96d6598c sp:7ffef1f31710 error:0 in
>> libmariadb.so.3[7f4b96d4e000+67000]
>> Dec 19 17:11:39 test kernel: auth[30299]: segfault at 560c57366c40 ip
>> 0000560c57366c40 sp 00007fffe5b51f18 error 15
>> Dec 19 17:12:39 test kernel: traps: auth[30346] general protection
>> ip:7f55601f298c sp:7ffe597929c0 error:0 in
>> libmariadb.so.3[7f55601db000+67000]
>> Dec 19 17:13:39 test kernel: traps: auth[30392] general protection
>> ip:7fcd2317298c sp:7ffecd6f4cb0 error:0 in
>> libmariadb.so.3[7fcd2315b000+67000]
>>
>> Dovecot log:
>> 2018-12-19 17:07:37 auth-worker: Fatal: master: service(auth-worker):
>> child 30053 killed with signal 11 (core dumped)
>> 2018-12-19 17:09:38 auth-worker: Error: double free or corruption
>> (fasttop)
>> 2018-12-19 17:09:38 auth-worker: Fatal: master: service(auth-worker):
>> child 30098 killed with signal 6 (core dumped)
>> 2018-12-19 17:10:38 auth-worker: Fatal: master: service(auth-worker):
>> child 30189 killed with signal 11 (core dumped)
>
> It says "core dumped". Can you obtain a gdb backtrace from those?
> https://www.dovecot.org/bugreport.html
>
> Regards,
>
> Stephan.
>
>> Output of dovecot -n:
>>
>> # 2.3.4 (0ecbaf23d): /etc/dovecot/dovecot.conf
>> # Pigeonhole version 0.5.4 (60b0f48d)
>> # OS: Linux 4.14.80 x86_64
>> # Hostname: test.testing.local
>> auth_mechanisms = plain login
>> auth_username_chars =
>> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_ at +*#"
>> base_dir = /var/run/dovecot/
>> debug_log_path = /var/log/dovecot/debug.log
>> dict {
>> expire = mysql:/etc/dovecot/dovecot-dict-sql-expire.conf
>> sqldomainquota = mysql:/etc/dovecot/dovecot-dict-sql-domain.conf
>> sqluserquota = mysql:/etc/dovecot/dovecot-dict-sql-user.conf
>> }
>> info_log_path = /var/log/dovecot/info.log
>> lda_mailbox_autocreate = yes
>> lda_mailbox_autosubscribe = yes
>> listen = *
>> log_path = /var/log/dovecot/main.log
>> log_timestamp = "%Y-%m-%d %H:%M:%S "
>> login_greeting = dovecot ready
>> login_log_format = %s
>> login_log_format_elements = user=<%u> method=%m rip=%r lip=%l mpid=%e
>> %c %k
>> mail_location = mdbox:/var/vmail/%d/%n/
>> mail_max_userip_connections = 4
>> mail_plugins = " zlib quota expire acl fts fts_lucene"
>> mailbox_idle_check_interval = 1 mins
>> maildir_very_dirty_syncs = 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 {
>> list = children
>> location = maildir:/var/vmail/%d/public:INDEXPVT=/var/vmail/%d/public
>> prefix = Public.
>> separator = .
>> subscriptions = no
>> type = public
>> }
>> namespace {
>> list = children
>> location =
>> maildir:/var/vmail/%d/%%u:CONTROL=/var/vmail/%d/shared/%%u:INDEX=/var/vmail/$
>> prefix = shared.%%n.
>> separator = .
>> subscriptions = yes
>> type = shared
>> }
>> namespace inbox {
>> inbox = yes
>> location =
>> mailbox Archive {
>> auto = subscribe
>> special_use = \Archive
>> }
>> mailbox Drafts {
>> auto = subscribe
>> special_use = \Drafts
>> }
>> mailbox Junk {
>> auto = subscribe
>> special_use = \Junk
>> }
>> mailbox Sent {
>> auto = subscribe
>> special_use = \Sent
>> }
>> mailbox Trash {
>> auto = subscribe
>> special_use = \Trash
>> }
>> prefix =
>> separator = .
>> }
>> passdb {
>> args = /etc/dovecot/dovecot-sql.conf
>> driver = sql
>> }
>> plugin {
>> acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes
>> al = vfile
>> expire = Trash
>> expire2 = Trash/*
>> expire3 = Spam
>> expire_cache = yes
>> expire_dict = proxy::expire
>> fts = lucene
>> fts_lucene = whitespace_chars=@.-+_*:/\"'
>> last_login_key = # hidden, use -P to show it
>> quota = dict:User Quota::proxy::sqluserquota
>> quota_exceeded_message = Quota exceeded
>> quota_grace = 10%%
>> quota_rule2 = Trash:storage=+15%%
>> quota_rule3 = Spam:ignore
>> quota_status_nouser = DUNNO
>> quota_status_overquota = 552 5.2.2 Mailbox is over quota / Postfach
>> ist voll
>> quota_status_success = DUNNO
>> quota_warning = storage=95%% quota-warning 95 %u
>> quota_warning2 = storage=80%% quota-warning 80 %u
>> sieve = /var/vmail/%d/%n/sieve/active-script.sieve
>> sieve_before = /var/vmail/sieve/spam-global.sieve
>> sieve_dir = /var/vmail/%d/%n/sieve/scripts/
>> sieve_global = /var/lib/dovecot/sieve/global/
>> sieve_max_actions = 32
>> sieve_max_redirects = 4
>> sieve_max_script_size = 1M
>> trash = /etc/dovecot/dovecot-trash.conf
>> zlib_save = gz
>> zlib_save_level = 6
>> }
>> postmaster_address = postmaster at testing.local
>> protocols = imap pop3 lmtp sieve
>> service auth-worker {
>> user = doveauth
>> }
>> service auth {
>> unix_listener /var/spool/postfix/private/auth {
>> group = postfix
>> mode = 0660
>> user = postfix
>> }
>> unix_listener auth-userdb {
>> mode = 0660
>> user = doveauth
>> }
>> }
>> service dict {
>> unix_listener dict {
>> mode = 0600
>> user = vmail
>> }
>> }
>> service imap-login {
>> inet_listener imap {
>> port = 143
>> }
>> inet_listener imaps {
>> port = 993
>> ssl = yes
>> }
>> process_min_avail = 0
>> }
>> service lmtp {
>> unix_listener /var/spool/postfix/private/dovecot-lmtp {
>> group = postfix
>> mode = 0660
>> user = postfix
>> }
>> }
>> service managesieve-login {
>> inet_listener sieve {
>> port = 4190
>> }
>> service_count = 1
>> }
>> service pop3-login {
>> inet_listener pop3 {
>> port = 110
>> }
>> inet_listener pop3s {
>> port = 995
>> ssl = yes
>> }
>> }
>> service quota-status {
>> client_limit = 1
>> executable = quota-status -p postfix
>> inet_listener {
>> port = 10022
>> }
>> }
>> service quota-warning {
>> executable = script /usr/local/bin/quota-warning.sh
>> user = vmail
>> }
>> ssl_alt_cert = </etc/ssl/certs/postfix-rsa.crt
>> ssl_alt_key = # hidden, use -P to show it
>> ssl_cert = </etc/ssl/certs/postfix-ecc.crt
>> ssl_dh = # hidden, use -P to show it
>> ssl_key = # hidden, use -P to show it
>> ssl_min_protocol = TLSv1.2
>> ssl_prefer_server_ciphers = yes
>> userdb {
>> args = /etc/dovecot/dovecot-sql.conf
>> driver = sql
>> }
>> verbose_proctitle = yes
>> protocol imap {
>> imap_logout_format = in=%i out=%o
>> imap_max_line_length = 64 k
>> mail_max_userip_connections = 10
>> mail_plugins = " zlib quota expire acl fts fts_lucene acl imap_acl
>> imap_quota mail_log last_login notify imap_zlib trash"
>> }
>> protocol pop3 {
>> mail_max_userip_connections = 4
>> mail_plugins = " zlib quota expire acl fts fts_lucene last_login
>> expire"
>> pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
>> pop3_enable_last = no
>> pop3_lock_session = no
>> pop3_logout_format = retr=%r/%b, del=%d/%m, size=%s
>> pop3_no_flag_updates = yes
>> pop3_reuse_xuidl = no
>> pop3_save_uidl = yes
>> pop3_uidl_format = %08Xu%08Xv
>> }
>> protocol lmtp {
>> mail_plugins = " zlib quota expire acl fts fts_lucene sieve"
>> postmaster_address = postmaster at test.local
>> }
>> protocol lda {
>> auth_socket_path = /var/run/dovecot/auth-master
>> info_log_path = /var/log/dovecot/deliver.log
>> log_path = /var/log/dovecot/deliver.log
>> mail_fsync = optimized
>> mail_plugins = " zlib quota expire acl fts fts_lucene trash autocreate
>> sieve"
>> postmaster_address = postmaster at testing.local
>> quota_full_tempfail = yes
>> rejection_reason = Your message to <%t> with subject of <%s> was
>> automatically rejected:%n%r
>> rejection_subject = Mailbox Full: %s
>> }
>> protocol sieve {
>> mail_max_userip_connections = 10
>> managesieve_implementation_string = Dovecot Pigeonhole
>> managesieve_logout_format = bytes=%i/%o
>> managesieve_max_compile_errors = 5
>> managesieve_max_line_length = 65536
>> }
>>
>> Thanks in advance!
>> Marcel


More information about the dovecot mailing list