[MDEV-23092] SIGABRT in wsrep::server_state::provider when setting invalid wsrep_provider (on optimized builds) Created: 2020-07-04  Updated: 2023-12-20  Resolved: 2020-08-19

Status: Closed
Project: MariaDB Server
Component/s: Galera
Affects Version/s: 10.4, 10.5
Fix Version/s: 10.4.16, 10.5.7

Type: Bug Priority: Major
Reporter: Roel Van de Paar Assignee: Jan Lindström (Inactive)
Resolution: Fixed Votes: 0
Labels: affects-tests, not-10.1, not-10.2, not-10.3, regression

Issue Links:
Relates
relates to MDEV-22443 terminate called after throwing an in... Closed

 Description   

SET COLLATION_CONNECTION='utf16le_bin';
SET GLOBAL wsrep_provider='/invalid/libgalera_smm.so';
SET GLOBAL wsrep_cluster_address='OFF';
SET GLOBAL wsrep_slave_threads=10;
SELECT 1;

Leads to:

10.5.5 e1013725ce0f3f947e728491eef75d9985e8db2f

Core was generated by `/test/MD250620-mariadb-10.5.5-linux-x86_64-opt/bin/mysqld --no-defaults --core-'.
Program terminated with signal SIGABRT, Aborted.
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
[Current thread is 1 (Thread 0x1516264dc700 (LWP 3267502))]
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x000015162e8ff801 in __GI_abort () at abort.c:79
#2  0x000015162f0da957 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x000015162f0e0ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x000015162f0e0b21 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x000015162f0e0d54 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x000056120039f704 in wsrep::server_state::provider (this=<optimized out>) at /test/10.5_opt/wsrep-lib/include/wsrep/server_state.hpp:310
#7  Wsrep_server_state::get_provider () at /test/10.5_opt/sql/wsrep_server_state.h:51
#8  wsrep_replication_process (thd=0x15160c012018, arg=<optimized out>) at /test/10.5_opt/sql/wsrep_thd.cc:58
#9  0x000056120038ee14 in start_wsrep_THD (arg=arg@entry=0x15160c446160) at /test/10.5_opt/sql/wsrep_mysqld.cc:2964
#10 0x000056120030fdaa in pfs_spawn_thread (arg=0x15160c47f218) at /test/10.5_opt/storage/perfschema/pfs.cc:2201
#11 0x000015162f5e26db in start_thread (arg=0x1516264dc700) at pthread_create.c:463
#12 0x000015162e9e088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.4.14 (opt), 10.5.5 (dbg), 10.5.5 (opt)

Bug confirmed not present in:
MariaDB: 10.1.46 (dbg), 10.1.46 (opt), 10.2.33 (dbg), 10.2.33 (opt), 10.3.24 (dbg), 10.3.24 (opt), 10.4.14 (dbg)
MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.47 (dbg), 5.6.47 (opt), 5.7.29 (dbg), 5.7.29 (opt), 8.0.19 (dbg), 8.0.19 (opt)



 Comments   
Comment by Roel Van de Paar [ 2020-07-04 ]

Slightly more resolved stack

(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x000014f4f5ce0801 in __GI_abort () at abort.c:79
#2  0x000014f4f64c3c42 in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x000014f4f64c1ae6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x000014f4f64c1b21 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x000014f4f64c1d54 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x0000563bb78f1704 in wsrep::server_state::provider (this=<optimized out>)
    at /test/10.5_opt/wsrep-lib/include/wsrep/server_state.hpp:310
#7  Wsrep_server_state::get_provider () at /test/10.5_opt/sql/wsrep_server_state.h:51
#8  wsrep_replication_process (thd=0x14f4cf012018, arg=<optimized out>)
    at /test/10.5_opt/sql/wsrep_thd.cc:58
#9  0x0000563bb78e0e14 in start_wsrep_THD (arg=arg@entry=0x14f4d1046160)
    at /test/10.5_opt/sql/wsrep_mysqld.cc:2964
#10 0x0000563bb7861daa in pfs_spawn_thread (arg=0x14f4d107f218)
    at /test/10.5_opt/storage/perfschema/pfs.cc:2201
#11 0x000014f4f69c36db in start_thread (arg=0x14f4ed891700) at pthread_create.c:463
#12 0x000014f4f5dc188f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Comment by Roel Van de Paar [ 2020-07-09 ]

Also try with this similar testcase. If it does not crash, repeat last few commands a few times.

SET NAMES utf8, collation_connection='utf16le_bin';
SET @@global.wsrep_provider='/invalid/libgalera_smm.so';
SET @@global.wsrep_cluster_address=AUTO;
SET GLOBAL wsrep_slave_threads = 2;
SELECT SLEEP(2);
CREATE TABLE t (c INT);

Comment by Roel Van de Paar [ 2020-07-09 ]

jplindst due to the partial stack smashing, this bug affects testing. If you would have a moment to fix this it would be great. Thank you.

Generated at Thu Feb 08 09:19:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.