[MDEV-28433] Server crashes when wsrep_sst_donor and wsrep_cluster_address set to NULL Created: 2022-04-28  Updated: 2023-06-07  Resolved: 2023-05-12

Status: Closed
Project: MariaDB Server
Component/s: Galera
Affects Version/s: 10.4, 10.5, 10.6, 10.7, 10.8, 10.9
Fix Version/s: 10.4.31, 10.5.22, 10.6.15, 10.9.8, 10.10.6, 11.0.3

Type: Bug Priority: Major
Reporter: Ramesh Sivaraman Assignee: Julius Goryavsky
Resolution: Fixed Votes: 0
Labels: not-10.3

Issue Links:
Duplicate
is duplicated by MDEV-30510 SIGSEGV in wsrep_start_replication Closed

 Description   

SET @@global.wsrep_sst_donor = NULL;
SET @@global.wsrep_cluster_address='NULL';

Leads to:

10.9.0 43fa8e0b8f3bae1ff8493cfd3adb39443da6a809 (Optimized)

Core was generated by `/test/GAL_MD270422-mariadb-10.9.0-linux-x86_64-opt/bin/mysqld --defaults-file=/'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
    at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
[Current thread is 1 (Thread 0x14ddec0a4700 (LWP 196251))]
(gdb) bt
#0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:56
#1  0x0000564623802dff in my_write_core (sig=sig@entry=6) at /test/10.9_opt/mysys/stacktrace.c:424
#2  0x00005646232ad3e0 in handle_fatal_signal (sig=6) at /test/10.9_opt/sql/signal_handler.cc:345
#3  <signal handler called>
#4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#5  0x000014ddfeb52859 in __GI_abort () at abort.c:79
#6  0x000014ddfef0c911 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x000014ddfef1838c in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#8  0x000014ddfef183f7 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#9  0x000014ddfef186a9 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#10 0x000014ddfef0f21e in std::__throw_logic_error(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x0000564623571efe in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (__end=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, __beg=0x0, this=0x14ddec0a2d70) at /usr/include/c++/9/bits/basic_string.tcc:206
#12 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*> (__end=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, __beg=0x0, this=0x14ddec0a2d70) at /usr/include/c++/9/bits/basic_string.h:247
#13 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (__end=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, __beg=0x0, this=0x14ddec0a2d70) at /usr/include/c++/9/bits/basic_string.h:266
#14 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__a=<optimized out>, __s=0x0, this=0x14ddec0a2d70) at /usr/include/c++/9/bits/basic_string.h:527
#15 wsrep_start_replication (wsrep_cluster_address=<optimized out>, wsrep_cluster_address@entry=0x14dd88016928 "NULL") at /test/10.9_opt/sql/wsrep_mysqld.cc:1166
#16 0x0000564623582a20 in wsrep_cluster_address_update (self=<optimized out>, thd=0x14dd88000c58, type=<optimized out>) at /test/10.9_opt/sql/wsrep_var.cc:679
#17 0x0000564622f9953a in sys_var::update (this=0x5646241180e0 <Sys_wsrep_cluster_address>, thd=0x14dd88000c58, var=0x14dd88010a20) at /test/10.9_opt/include/mysql/psi/mysql_thread.h:795
#18 0x0000564622f999bb in set_var::update (this=<optimized out>, thd=<optimized out>) at /test/10.9_opt/sql/set_var.cc:863
#19 0x0000564622f9ab49 in sql_set_variables (thd=thd@entry=0x14dd88000c58, var_list=var_list@entry=0x14dd88005db8, free=free@entry=true) at /test/10.9_opt/sql/set_var.cc:745
#20 0x00005646230663a0 in mysql_execute_command (thd=0x14dd88000c58, is_called_from_prepared_stmt=<optimized out>) at /test/10.9_opt/sql/sql_parse.cc:5049
#21 0x0000564623055067 in mysql_parse (thd=0x14dd88000c58, rawbuf=<optimized out>, length=<optimized out>, parser_state=<optimized out>) at /test/10.9_opt/sql/sql_parse.cc:8043
#22 0x0000564623054821 in wsrep_mysql_parse (thd=0x14dd88000c58, rawbuf=0x14dd880108c0 "SET @@global.wsrep_cluster_address='NULL'", length=41, parser_state=0x14ddec0a3440) at /test/10.9_opt/sql/sql_parse.cc:7856
#23 0x0000564623062b4a in dispatch_command (command=COM_QUERY, thd=0x14dd88000c58, packet=0x14dd88008599 "SET @@global.wsrep_cluster_address='NULL'", packet_length=<optimized out>, blocking=<optimized out>) at /test/10.9_opt/sql/sql_class.h:1364
#24 0x0000564623063668 in do_command (thd=0x14dd88000c58, blocking=blocking@entry=true) at /test/10.9_opt/sql/sql_parse.cc:1407
#25 0x00005646231841d7 in do_handle_one_connection (connect=<optimized out>, put_in_cache=true) at /test/10.9_opt/sql/sql_connect.cc:1418
#26 0x000056462318452d in handle_one_connection (arg=arg@entry=0x5646268811f8) at /test/10.9_opt/sql/sql_connect.cc:1312
#27 0x00005646234ff7f6 in pfs_spawn_thread (arg=0x5646268938d8) at /test/10.9_opt/storage/perfschema/pfs.cc:2201
#28 0x000014ddff061609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#29 0x000014ddfec4f293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Bug confirmed present in:
MariaDB: 10.4.25 (dbg), 10.4.25 (opt), 10.5.16 (dbg), 10.5.16 (opt), 10.6.8 (dbg), 10.6.8 (opt), 10.7.4 (dbg), 10.7.4 (opt), 10.8.3 (dbg), 10.8.3 (opt), 10.9.0 (opt), 10.9.0 (dbg)

Bug (or feature/syntax) confirmed not present in:
MariaDB: 10.3.35 (dbg), 10.3.35 (opt)



 Comments   
Comment by Jan Lindström [ 2023-05-04 ]

https://github.com/MariaDB/server/pull/2625

Comment by Julius Goryavsky [ 2023-05-12 ]

Thanks, fix merged with head revision: https://github.com/MariaDB/server/commit/f102b595e8a65d910e34ea943eb562dc16a4256c

Comment by Julius Goryavsky [ 2023-05-12 ]

Fix merged with head revision after review: https://github.com/MariaDB/server/commit/f102b595e8a65d910e34ea943eb562dc16a4256c

Generated at Thu Feb 08 10:00:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.