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