<!doctype html>
<html>
 <head> 
  <meta charset="UTF-8"> 
 </head>
 <body>
  <div>
   Can you try if  https://github.com/dovecot/core/commit/3c5101ffdd2a8115e03ed7180d53578765dea4c9.patch helps?
   <br>
  </div>
  <div>
   <br>
  </div>
  <div>
   Aki
  </div>
  <blockquote type="cite">
   <div>
    On 20 January 2019 at 15:05 Bogomil Vasilev via dovecot <
    <a href="mailto:dovecot@dovecot.org">dovecot@dovecot.org</a>> wrote:
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    Hello,
   </div>
   <div>
    <br>
   </div>
   <div>
    I rebuilt mariadb and dovecot with debug symbols.
   </div>
   <div>
    The backtrace is this:
   </div>
   <div>
    <br>
   </div>
   <div>
    Program terminated with signal SIGABRT, Aborted.
   </div>
   <div>
    #0 0x00007fb040e0cd7f in raise () from /usr/lib/libc.so.6
   </div>
   <div>
    (gdb) bt full
   </div>
   <div>
    #0 0x00007fb040e0cd7f in raise () from /usr/lib/libc.so.6
   </div>
   <div>
    No symbol table info available.
   </div>
   <div>
    #1 0x00007fb040df7672 in abort () from /usr/lib/libc.so.6
   </div>
   <div>
    No symbol table info available.
   </div>
   <div>
    #2 0x00007fb040e4f878 in __libc_message () from /usr/lib/libc.so.6
   </div>
   <div>
    No symbol table info available.
   </div>
   <div>
    #3 0x00007fb040e5618a in malloc_printerr () from /usr/lib/libc.so.6
   </div>
   <div>
    No symbol table info available.
   </div>
   <div>
    #4 0x00007fb040e57b27 in _int_free () from /usr/lib/libc.so.6
   </div>
   <div>
    No symbol table info available.
   </div>
   <div>
    #5 0x00007fb04114db89 in mysql_close (mysql=0x5592728448e0) at
   </div>
   <div>
    /usr/src/debug/mariadb-10.3.12/libmariadb/libmariadb/mariadb_lib.c:1940
   </div>
   <div>
    p = <optimized out>
   </div>
   <div>
    #6 mysql_close (mysql=0x5592728448e0) at
   </div>
   <div>
    /usr/src/debug/mariadb-10.3.12/libmariadb/libmariadb/mariadb_lib.c:1913
   </div>
   <div>
    p = <optimized out>
   </div>
   <div>
    #7 0x00005592724e2dac in driver_sqlpool_disconnect (_db=0x559272843be0)
   </div>
   <div>
    at driver-sqlpool.c:590
   </div>
   <div>
    conn__foreach_end = 0x559272844090
   </div>
   <div>
    db = 0x559272843be0
   </div>
   <div>
    conn = 0x559272844080
   </div>
   <div>
    #8 0x00005592724d78fc in db_sql_unref (_conn=0x55927283b5e8) at
   </div>
   <div>
    db-sql.c:128
   </div>
   <div>
    conn = 0x559272843818
   </div>
   <div>
    #9 0x00005592724cf89c in userdb_deinit (userdb=0x55927283b5c0) at
   </div>
   <div>
    userdb.c:191
   </div>
   <div>
    idx = 0
   </div>
   <div>
    __func__ = "userdb_deinit"
   </div>
   <div>
    #10 0x00005592724afbb9 in auth_deinit (auth=0x55927283b320) at
   </div>
   <div>
    auth.c:335
   </div>
   <div>
    passdb = <optimized out>
   </div>
   <div>
    userdb = 0x55927283b4e0
   </div>
   <div>
    passdb = <optimized out>
   </div>
   <div>
    userdb = <optimized out>
   </div>
   <div>
    #11 auths_deinit () at auth.c:433
   </div>
   <div>
    auth__foreach_end = 0x559272842e18
   </div>
   <div>
    auth = 0x559272842e10
   </div>
   <div>
    #12 0x00005592724ae664 in main_deinit () at main.c:271
   </div>
   <div>
    l = <optimized out>
   </div>
   <div>
    l = <optimized out>
   </div>
   <div>
    l_end = <optimized out>
   </div>
   <div>
    #13 main (argc=<optimized out>, argv=<optimized out>) at main.c:398
   </div>
   <div>
    c = <optimized out>
   </div>
   <div>
    (gdb)
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    My `dovecot -n` output is this:
   </div>
   <div>
    <br>
   </div>
   <div>
    0 « root » /home/smirky/stuff/ABS/dovecot # dovecot -n
   </div>
   <div>
    # 2.3.4 (0ecbaf23d): /etc/dovecot/dovecot.conf
   </div>
   <div>
    # Pigeonhole version 0.5.4 (60b0f48d)
   </div>
   <div>
    # OS: Linux 5.0.0-rc2-mainline x86_64 Arch Linux
   </div>
   <div>
    # Hostname: archy
   </div>
   <div>
    dict {
   </div>
   <div>
    quotadict = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
   </div>
   <div>
    }
   </div>
   <div>
    mail_home = /home/vmail/%d/%u
   </div>
   <div>
    mail_location = maildir:~
   </div>
   <div>
    mail_plugins = quota
   </div>
   <div>
    managesieve_notify_capability = mailto
   </div>
   <div>
    managesieve_sieve_capability = fileinto reject envelope
   </div>
   <div>
    encoded-character vacation subaddress comparator-i;ascii-numeric
   </div>
   <div>
    relational regex imap4flags copy include variables body enotify
   </div>
   <div>
    environment mailbox date i
   </div>
   <div>
    ndex ihave duplicate mime foreverypart extracttext imapsieve
   </div>
   <div>
    vnd.dovecot.imapsieve
   </div>
   <div>
    namespace inbox {
   </div>
   <div>
    inbox = yes
   </div>
   <div>
    location =
   </div>
   <div>
    mailbox Drafts {
   </div>
   <div>
    auto = create
   </div>
   <div>
    special_use = \Drafts
   </div>
   <div>
    }
   </div>
   <div>
    mailbox Sent {
   </div>
   <div>
    auto = subscribe
   </div>
   <div>
    special_use = \Sent
   </div>
   <div>
    }
   </div>
   <div>
    mailbox "Sent Messages" {
   </div>
   <div>
    auto = no
   </div>
   <div>
    special_use = \Sent
   </div>
   <div>
    }
   </div>
   <div>
    mailbox Spam {
   </div>
   <div>
    auto = subscribe
   </div>
   <div>
    special_use = \Junk
   </div>
   <div>
    }
   </div>
   <div>
    mailbox Trash {
   </div>
   <div>
    auto = subscribe
   </div>
   <div>
    special_use = \Trash
   </div>
   <div>
    }
   </div>
   <div>
    prefix =
   </div>
   <div>
    }
   </div>
   <div>
    passdb {
   </div>
   <div>
    args = /etc/dovecot/dovecot-sql.conf
   </div>
   <div>
    driver = sql
   </div>
   <div>
    }
   </div>
   <div>
    plugin {
   </div>
   <div>
    imapsieve_mailbox1_before = file:/etc/dovecot/sieve/report-spam.sieve
   </div>
   <div>
    imapsieve_mailbox1_causes = COPY
   </div>
   <div>
    imapsieve_mailbox1_name = Spam
   </div>
   <div>
    imapsieve_mailbox2_before = file:/etc/dovecot/sieve/report-ham.sieve
   </div>
   <div>
    imapsieve_mailbox2_causes = COPY
   </div>
   <div>
    imapsieve_mailbox2_from = Junk
   </div>
   <div>
    imapsieve_mailbox2_name = *
   </div>
   <div>
    quota = dict:User quota::proxy::quotadict
   </div>
   <div>
    quota_rule2 = Trash:storage=+10%%
   </div>
   <div>
    quota_warning = storage=95%% quota-warning 95 %u
   </div>
   <div>
    quota_warning2 = storage=80%% quota-warning 80 %u
   </div>
   <div>
    quota_warning3 = -storage=100%% quota-warning below 100 %u
   </div>
   <div>
    sieve_before = /etc/dovecot/sieve/filter.sieve
   </div>
   <div>
    sieve_global_extensions = +vnd.dovecot.pipe
   </div>
   <div>
    sieve_pipe_bin_dir = /etc/dovecot/sieve
   </div>
   <div>
    sieve_plugins = sieve_imapsieve sieve_extprograms
   </div>
   <div>
    }
   </div>
   <div>
    protocols = imap pop3 sieve
   </div>
   <div>
    service auth-worker {
   </div>
   <div>
    unix_listener auth-worker {
   </div>
   <div>
    group = vmail
   </div>
   <div>
    mode = 0666
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    }
   </div>
   <div>
    service auth {
   </div>
   <div>
    unix_listener /var/spool/postfix/private/auth {
   </div>
   <div>
    group = postfix
   </div>
   <div>
    mode = 0660
   </div>
   <div>
    user = postfix
   </div>
   <div>
    }
   </div>
   <div>
    user = root
   </div>
   <div>
    }
   </div>
   <div>
    service dict {
   </div>
   <div>
    unix_listener dict {
   </div>
   <div>
    group = vmail
   </div>
   <div>
    mode = 0660
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    user = root
   </div>
   <div>
    }
   </div>
   <div>
    service imap-login {
   </div>
   <div>
    inet_listener imap {
   </div>
   <div>
    address = 127.0.0.1
   </div>
   <div>
    }
   </div>
   <div>
    }
   </div>
   <div>
    service managesieve-login {
   </div>
   <div>
    inet_listener sieve {
   </div>
   <div>
    port = 4190
   </div>
   <div>
    }
   </div>
   <div>
    }
   </div>
   <div>
    service pop3-login {
   </div>
   <div>
    inet_listener pop3 {
   </div>
   <div>
    address = 127.0.0.1
   </div>
   <div>
    }
   </div>
   <div>
    }
   </div>
   <div>
    service quota-warning {
   </div>
   <div>
    executable = script /usr/local/bin/quota-warning.sh
   </div>
   <div>
    unix_listener quota-warning {
   </div>
   <div>
    group = vmail
   </div>
   <div>
    mode = 0660
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    service stats {
   </div>
   <div>
    unix_listener stats-reader {
   </div>
   <div>
    group = vmail
   </div>
   <div>
    mode = 0660
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    unix_listener stats-writer {
   </div>
   <div>
    group = vmail
   </div>
   <div>
    mode = 0660
   </div>
   <div>
    user = vmail
   </div>
   <div>
    }
   </div>
   <div>
    }
   </div>
   <div>
    ssl_cert = </etc/letsencrypt/live/smirky.net/fullchain.pem
   </div>
   <div>
    ssl_dh = # hidden, use -P to show it
   </div>
   <div>
    ssl_key = # hidden, use -P to show it
   </div>
   <div>
    userdb {
   </div>
   <div>
    args = /etc/dovecot/dovecot-sql.conf
   </div>
   <div>
    driver = sql
   </div>
   <div>
    }
   </div>
   <div>
    protocol pop3 {
   </div>
   <div>
    mail_plugins = quota
   </div>
   <div>
    pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
   </div>
   <div>
    pop3_uidl_format = %08Xu%08Xv
   </div>
   <div>
    }
   </div>
   <div>
    protocol lda {
   </div>
   <div>
    mail_plugins = quota
   </div>
   <div>
    postmaster_address = 
    <a href="mailto:postmaster@smirky.net">postmaster@smirky.net</a>
   </div>
   <div>
    }
   </div>
   <div>
    protocol imap {
   </div>
   <div>
    mail_max_userip_connections = 20
   </div>
   <div>
    mail_plugin_dir = /usr/lib/dovecot/modules
   </div>
   <div>
    mail_plugins = quota imap_quota imap_sieve
   </div>
   <div>
    }
   </div>
   <div>
    <br>
   </div>
   <div>
    <br>
   </div>
   <div>
    ---
   </div>
   <div>
    BOGOMIL VASILEV
   </div>
   <div>
    For contacts, use this e-mail. My GPG key is 646F3ABF6E457336
   </div>
   <div>
    Website: 
    <a href="HTTPS://WWW.SMIRKY.NET/" rel="noopener" target="_blank">HTTPS://WWW.SMIRKY.NET/</a>
   </div>
   <div>
    <br>
   </div>
   <div>
    On 2019-01-20 13:22, Stephan Bosch wrote:
   </div>
   <div>
    <br>
   </div>
   <blockquote type="cite">
    <div>
     Op 20/01/2019 om 10:50 schreef Bogomil Vasilev via dovecot:
    </div>
    <div>
     <br>
    </div>
    <blockquote type="cite">
     <div>
      Hello,
     </div>
     <div>
      <br>
     </div>
     <div>
      I have started having issues with auth-worker. Dovecot version:
     </div>
     <div>
      <br>
     </div>
     <div>
      0 « root » ~ # dovecot --version
     </div>
     <div>
      2.3.4 (0ecbaf23d)
     </div>
     <div>
      0 « root » ~ # pacman -Q dovecot
     </div>
     <div>
      dovecot 2.3.4-2
     </div>
     <div>
      <br>
     </div>
     <div>
      OS: Arch Linux
     </div>
     <div>
      <br>
     </div>
     <div>
      From /var/log/mail.log:
     </div>
     <div>
      <br>
     </div>
     <div>
      Jan 20 11:31:29 archy dovecot[23070]: auth-worker: Fatal: master:
     </div>
     <div>
      service(auth-worker): child 9885 killed with signal 6 (core not dumped
     </div>
     <div>
      - 
      <a href="https://dovecot.org/bugreport.html#coredumps" rel="noopener" target="_blank">https://dovecot.org/bugreport.html#coredumps</a> - set
     </div>
     <div>
      /proc/sys/fs/suid_dum
     </div>
     <div>
      pable to 2)
     </div>
     <div>
      <br>
     </div>
     <div>
      From dmesg:
     </div>
     <div>
      <br>
     </div>
     <div>
      [42113.729398] auth[8134]: segfault at 5579d8e1c8e0 ip
     </div>
     <div>
      00005579d8e1c8e0 sp 00007ffd44ab0df8 error 15
     </div>
     <div>
      [42113.729406] Code: 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00
     </div>
     <div>
      00 00 21 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 20 7a af 07 e3
     </div>
     <div>
      7f 00 00 <40> f4 b5 07 e3 7f 00 00 31 a0 00 00 00 00 00 00 e0 9f df d8
     </div>
     <div>
      79
     </div>
     <div>
      55
     </div>
     <div>
      <br>
     </div>
     <div>
      This started happening on January 18th, after I upgraded Dovecot from
     </div>
     <div>
      "2.3.4-1" to "2.3.4-2".
     </div>
     <div>
      The package was rebuilt from our package maintainer due to bumping
     </div>
     <div>
      MariaDB from 10.1.x to 10.3.x.
     </div>
     <div>
      Before that, I did not have any issues at all.
     </div>
     <div>
      However, I don't see any impact from this error too, at least not for
     </div>
     <div>
      now.
     </div>
     <div>
      I made a coredump as the error suggests and I'm pasting it here, as
     </div>
     <div>
      per the bugreport rules:
     </div>
     <div>
      <br>
     </div>
     <div>
      0 « root » ~ # gdb /usr/lib/dovecot/auth /home/smirky/dovecot.dump
     </div>
     <div>
      GNU gdb (GDB) 8.2.1
     </div>
     <div>
      Copyright (C) 2018 Free Software Foundation, Inc.
     </div>
     <div>
      License GPLv3+: GNU GPL version 3 or later
     </div>
     <div>
      <
      <a href="http://gnu.org/licenses/gpl.html" rel="noopener" target="_blank">http://gnu.org/licenses/gpl.html</a>>
     </div>
     <div>
      This is free software: you are free to change and redistribute it.
     </div>
     <div>
      There is NO WARRANTY, to the extent permitted by law.
     </div>
     <div>
      Type "show copying" and "show warranty" for details.
     </div>
     <div>
      This GDB was configured as "x86_64-pc-linux-gnu".
     </div>
     <div>
      Type "show configuration" for configuration details.
     </div>
     <div>
      For bug reporting instructions, please see:
     </div>
     <div>
      <
      <a href="http://www.gnu.org/software/gdb/bugs/>" rel="noopener" target="_blank" data-mce-href="http://www.gnu.org/software/gdb/bugs/">">http://www.gnu.org/software/gdb/bugs/></a>.
     </div>
     <div>
      Find the GDB manual and other documentation resources online at:
     </div>
     <div>
      <
      <a href="http://www.gnu.org/software/gdb/documentation/>" rel="noopener" target="_blank" data-mce-href="http://www.gnu.org/software/gdb/documentation/">">http://www.gnu.org/software/gdb/documentation/></a>.
     </div>
     <div>
      <br>
     </div>
     <div>
      For help, type "help".
     </div>
     <div>
      Type "apropos word" to search for commands related to "word"...
     </div>
     <div>
      Reading symbols from /usr/lib/dovecot/auth...(no debugging symbols
     </div>
     <div>
      found)...done.
     </div>
     <div>
      [New LWP 9549]
     </div>
     <div>
      [Thread debugging using libthread_db enabled]
     </div>
     <div>
      Using host libthread_db library "/usr/lib/libthread_db.so.1".
     </div>
     <div>
      Core was generated by `dovecot/auth -w'.
     </div>
     <div>
      Program terminated with signal SIGABRT, Aborted.
     </div>
     <div>
      #0 0x00007fe1bb8ead7f in raise () from /usr/lib/libc.so.6
     </div>
     <div>
      (gdb) bt full
     </div>
     <div>
      #0 0x00007fe1bb8ead7f in raise () from /usr/lib/libc.so.6
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #1 0x00007fe1bb8d5672 in abort () from /usr/lib/libc.so.6
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #2 0x00007fe1bb92d878 in __libc_message () from /usr/lib/libc.so.6
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #3 0x00007fe1bb93418a in malloc_printerr () from /usr/lib/libc.so.6
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #4 0x00007fe1bb935b27 in _int_free () from /usr/lib/libc.so.6
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #5 0x00007fe1bbc2bb89 in mysql_close () from /usr/lib/libmariadb.so.3
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #6 0x0000563481946dac in ?? ()
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #7 0x000056348193b8fc in db_sql_unref ()
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #8 0x000056348193389c in userdb_deinit ()
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #9 0x0000563481913bb9 in auths_deinit ()
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      #10 0x0000563481912664 in main ()
     </div>
     <div>
      No symbol table info available.
     </div>
     <div>
      (gdb)
     </div>
     <div>
      <br>
     </div>
     <div>
      The way I see it, indeed it is highly-likely to be related to the
     </div>
     <div>
      MariaDB version bump,
     </div>
     <div>
      but I cannot be entirely sure if it's not a bug in Dovecot, discovered
     </div>
     <div>
      by this bump.
     </div>
     <div>
      Please let me know if you need any other info, related to my setup.
     </div>
    </blockquote>
    <div>
     It is very hard to be sure. Dovecot could be using the MariaDB API
    </div>
    <div>
     wrong (e.g., calling mysql_close() more than once) causing it to call
    </div>
    <div>
     abort().
    </div>
    <div>
     <br>
    </div>
    <div>
     You should install debug symbols for Dovecot and perhaps also MariaDB
    </div>
    <div>
     to obtain a useful gdb backtrace. Now, it has no symbol table for any
    </div>
    <div>
     of the function calls.
    </div>
    <div>
     <br>
    </div>
    <div>
     In most cases is useful to also provide your configuration (output from
    </div>
    <div>
     `dovecot -n`).
    </div>
    <div>
     <br>
    </div>
    <div>
     Regards,
    </div>
    <div>
     <br>
    </div>
    <div>
     Stephan.
    </div>
   </blockquote>
  </blockquote>
  <div>
   <br>
  </div>
  <div class="io-ox-signature">
   ---
   <br>Aki Tuomi
  </div> 
 </body>
</html>