From ea239034deac61642dbf25a5f402a58642a4c1ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Mon, 1 Nov 2021 13:07:55 +0200 Subject: [PATCH 1/6] MDEV-23328 Server hang due to Galera lock conflict resolution * Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade --- mysql-test/suite/galera/r/galera_ssl_upgrade.result | 10 ++++++---- mysql-test/suite/galera/t/galera_ssl_upgrade.test | 10 +++++++--- sql/sql_parse.cc | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_ssl_upgrade.result b/mysql-test/suite/galera/r/galera_ssl_upgrade.result index 1443e34d041..32b5cf10757 100644 --- a/mysql-test/suite/galera/r/galera_ssl_upgrade.result +++ b/mysql-test/suite/galera/r/galera_ssl_upgrade.result @@ -1,7 +1,7 @@ connection node_1; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); connection node_2; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); connection node_1; connection node_2; connection node_1; @@ -24,5 +24,7 @@ connection node_1; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 -disconnect node_2; -disconnect node_1; +connection node_1; +call mtr.add_suppression("WSREP: write_handler().*"); +connection node_2; +call mtr.add_suppression("WSREP: write_handler():.*"); diff --git a/mysql-test/suite/galera/t/galera_ssl_upgrade.test b/mysql-test/suite/galera/t/galera_ssl_upgrade.test index 4d6b9159c78..1098e84488f 100644 --- a/mysql-test/suite/galera/t/galera_ssl_upgrade.test +++ b/mysql-test/suite/galera/t/galera_ssl_upgrade.test @@ -9,9 +9,9 @@ --source include/have_ssl_communication.inc --connection node_1 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); --connection node_2 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); # Save original auto_increment_offset values. --let $node_1=node_1 @@ -72,4 +72,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N # Restore original auto_increment_offset values. --source include/auto_increment_offset_restore.inc ---source include/galera_end.inc +--connection node_1 +call mtr.add_suppression("WSREP: write_handler().*"); +--connection node_2 +call mtr.add_suppression("WSREP: write_handler():.*"); + diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 2bec9c6b6cd..0209dab7e18 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -9093,7 +9093,7 @@ void sql_kill(THD *thd, longlong id, killed_state state, killed_type type) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), wsrep_thd_query(thd)); + my_error(ER_CANNOT_USER, MYF(0), " "); #endif /* WITH_WSREP */ } @@ -9128,7 +9128,7 @@ void sql_kill_user(THD *thd, LEX_USER *user, killed_state state) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), user->user.str); + my_error(ER_CANNOT_USER, MYF(0), " "); #endif /* WITH_WSREP */ } From db64924454d3351c93371518ff49154e2fe9f0e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Mon, 1 Nov 2021 13:07:55 +0200 Subject: [PATCH 2/6] MDEV-23328 Server hang due to Galera lock conflict resolution * Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade --- mysql-test/suite/galera/r/galera_ssl_upgrade.result | 10 ++++++---- mysql-test/suite/galera/r/galera_to_error.result | 6 +++--- mysql-test/suite/galera/t/galera_ssl_upgrade.test | 10 +++++++--- mysql-test/suite/galera/t/galera_to_error.test | 6 +++--- sql/sql_parse.cc | 6 ++++-- 5 files changed, 23 insertions(+), 15 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_ssl_upgrade.result b/mysql-test/suite/galera/r/galera_ssl_upgrade.result index 1443e34d041..32b5cf10757 100644 --- a/mysql-test/suite/galera/r/galera_ssl_upgrade.result +++ b/mysql-test/suite/galera/r/galera_ssl_upgrade.result @@ -1,7 +1,7 @@ connection node_1; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); connection node_2; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); connection node_1; connection node_2; connection node_1; @@ -24,5 +24,7 @@ connection node_1; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 -disconnect node_2; -disconnect node_1; +connection node_1; +call mtr.add_suppression("WSREP: write_handler().*"); +connection node_2; +call mtr.add_suppression("WSREP: write_handler():.*"); diff --git a/mysql-test/suite/galera/r/galera_to_error.result b/mysql-test/suite/galera/r/galera_to_error.result index 4f985593466..545029bf069 100644 --- a/mysql-test/suite/galera/r/galera_to_error.result +++ b/mysql-test/suite/galera/r/galera_to_error.result @@ -15,10 +15,10 @@ Killing server ... connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1; connection node_1c; CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB; -ERROR 40001: WSREP replication failed. Check your wsrep connection state and retry the query. -ERROR 40001: WSREP replication failed. Check your wsrep connection state and retry the query. +Got one of the listed errors +Got one of the listed errors CREATE UNIQUE INDEX b2 ON t2(b); -ERROR 08S01: WSREP has not yet prepared node for application use +Got one of the listed errors connection node_1; disconnect node_1a; disconnect node_1b; diff --git a/mysql-test/suite/galera/t/galera_ssl_upgrade.test b/mysql-test/suite/galera/t/galera_ssl_upgrade.test index 4d6b9159c78..1098e84488f 100644 --- a/mysql-test/suite/galera/t/galera_ssl_upgrade.test +++ b/mysql-test/suite/galera/t/galera_ssl_upgrade.test @@ -9,9 +9,9 @@ --source include/have_ssl_communication.inc --connection node_1 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); --connection node_2 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); # Save original auto_increment_offset values. --let $node_1=node_1 @@ -72,4 +72,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N # Restore original auto_increment_offset values. --source include/auto_increment_offset_restore.inc ---source include/galera_end.inc +--connection node_1 +call mtr.add_suppression("WSREP: write_handler().*"); +--connection node_2 +call mtr.add_suppression("WSREP: write_handler():.*"); + diff --git a/mysql-test/suite/galera/t/galera_to_error.test b/mysql-test/suite/galera/t/galera_to_error.test index 71bfe64c02d..576fa01e64d 100644 --- a/mysql-test/suite/galera/t/galera_to_error.test +++ b/mysql-test/suite/galera/t/galera_to_error.test @@ -34,16 +34,16 @@ BEGIN; --connect node_1c, 127.0.0.1, root, , test, $NODE_MYPORT_1 --connection node_1c ---error ER_LOCK_DEADLOCK +--error ER_LOCK_DEADLOCK,ER_UNKNOWN_COM_ERROR CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY) ENGINE=InnoDB; --disable_query_log ---error ER_LOCK_DEADLOCK +--error ER_LOCK_DEADLOCK, ER_CANNOT_USER,ER_KILL_QUERY_DENIED_ERROR --eval KILL QUERY $k_thread; --enable_query_log # Reset the master and restart the slave so that post-test checks can run ---error 1047 +--error ER_LOCK_DEADLOCK,ER_UNKNOWN_COM_ERROR CREATE UNIQUE INDEX b2 ON t2(b); --connection node_1 diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index aa0b4a96327..4ff1776e244 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -9181,7 +9181,9 @@ void sql_kill(THD *thd, longlong id, killed_state state, killed_type type) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), wsrep_thd_query(thd)); + error= (type == KILL_TYPE_QUERY ? ER_KILL_QUERY_DENIED_ERROR : + ER_KILL_DENIED_ERROR); + my_error(error, MYF(0), id); #endif /* WITH_WSREP */ } @@ -9216,7 +9218,7 @@ void sql_kill_user(THD *thd, LEX_USER *user, killed_state state) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), user->user.str); + my_error(ER_CANNOT_USER, MYF(0), user ? user->user.str : "NULL"); #endif /* WITH_WSREP */ } From eab7f5d8bc68f2430c12807582e80a3ab420a0fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Mon, 1 Nov 2021 13:07:55 +0200 Subject: [PATCH 3/6] MDEV-23328 Server hang due to Galera lock conflict resolution * Fix error handling NULL-pointer reference * Add mtr-suppression on galera_ssl_upgrade --- mysql-test/suite/galera/r/galera_ssl_upgrade.result | 10 ++++++---- mysql-test/suite/galera/t/galera_ssl_upgrade.test | 10 +++++++--- sql/sql_parse.cc | 6 ++++-- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/mysql-test/suite/galera/r/galera_ssl_upgrade.result b/mysql-test/suite/galera/r/galera_ssl_upgrade.result index 134d1d1b605..9993b86e0e9 100644 --- a/mysql-test/suite/galera/r/galera_ssl_upgrade.result +++ b/mysql-test/suite/galera/r/galera_ssl_upgrade.result @@ -1,9 +1,9 @@ connection node_2; connection node_1; connection node_1; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); connection node_2; -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); connection node_1; connection node_2; connection node_1; @@ -27,5 +27,7 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N VARIABLE_VALUE = 2 1 connection node_2; -disconnect node_2; -disconnect node_1; +connection node_1; +call mtr.add_suppression("WSREP: write_handler().*"); +connection node_2; +call mtr.add_suppression("WSREP: write_handler():.*"); diff --git a/mysql-test/suite/galera/t/galera_ssl_upgrade.test b/mysql-test/suite/galera/t/galera_ssl_upgrade.test index c4ad652a482..2c55238809f 100644 --- a/mysql-test/suite/galera/t/galera_ssl_upgrade.test +++ b/mysql-test/suite/galera/t/galera_ssl_upgrade.test @@ -9,9 +9,9 @@ --source include/have_ssl_communication.inc --connection node_1 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler().*"); --connection node_2 -call mtr.add_suppression("WSREP: write_handler(): protocol is shutdown.*"); +call mtr.add_suppression("WSREP: write_handler():.*"); # Save original auto_increment_offset values. --let $node_1=node_1 @@ -76,4 +76,8 @@ SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_N # Restore original auto_increment_offset values. --source include/auto_increment_offset_restore.inc ---source include/galera_end.inc +--connection node_1 +call mtr.add_suppression("WSREP: write_handler().*"); +--connection node_2 +call mtr.add_suppression("WSREP: write_handler():.*"); + diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 27d716c2162..6587a948760 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -9358,7 +9358,9 @@ void sql_kill(THD *thd, longlong id, killed_state state, killed_type type) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), wsrep_thd_query(thd)); + error= (type == KILL_TYPE_QUERY ? ER_KILL_QUERY_DENIED_ERROR : + ER_KILL_DENIED_ERROR); + my_error(error, MYF(0), id); #endif /* WITH_WSREP */ } @@ -9393,7 +9395,7 @@ void sql_kill_user(THD *thd, LEX_USER *user, killed_state state) #ifdef WITH_WSREP return; wsrep_error_label: - my_error(ER_CANNOT_USER, MYF(0), user->user.str); + my_error(ER_CANNOT_USER, MYF(0), user ? user->user.str : "NULL"); #endif /* WITH_WSREP */ } From d7c179e65c604ca2bd64f8c82ba8f561c5e1a5ee Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Tue, 2 Nov 2021 09:50:49 +0100 Subject: [PATCH 4/6] move "bad" test in seperate file with valgrind prohibited (different size of allocated memory) --- mysql-test/main/sp-no-valgrind.result | 25 +++++++++++++++++++++++++ mysql-test/main/sp-no-valgrind.test | 26 ++++++++++++++++++++++++++ mysql-test/main/sp.result | 19 ------------------- mysql-test/main/sp.test | 18 ------------------ 4 files changed, 51 insertions(+), 37 deletions(-) create mode 100644 mysql-test/main/sp-no-valgrind.result create mode 100644 mysql-test/main/sp-no-valgrind.test diff --git a/mysql-test/main/sp-no-valgrind.result b/mysql-test/main/sp-no-valgrind.result new file mode 100644 index 00000000000..bc5809ba79e --- /dev/null +++ b/mysql-test/main/sp-no-valgrind.result @@ -0,0 +1,25 @@ +# MDEV-20699 do not cache SP in SHOW CREATE +# Warmup round, this might allocate some memory for session variable +# and the output +SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +CREATE PROCEDURE sp0() SELECT 1; +SHOW CREATE PROCEDURE sp0; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +sp0 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`() +SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci +DROP PROCEDURE sp0; +SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +CREATE PROCEDURE sp1() SELECT 1; +SHOW CREATE PROCEDURE sp1; +Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation +sp1 STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() +SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci +SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +VARIABLE_VALUE-@local_mem_used +0 +DROP PROCEDURE sp1; +# +# End of 10.3 tests +# diff --git a/mysql-test/main/sp-no-valgrind.test b/mysql-test/main/sp-no-valgrind.test new file mode 100644 index 00000000000..89f8250bf72 --- /dev/null +++ b/mysql-test/main/sp-no-valgrind.test @@ -0,0 +1,26 @@ + +--source include/not_valgrind.inc + +--echo # MDEV-20699 do not cache SP in SHOW CREATE +--echo # Warmup round, this might allocate some memory for session variable +--echo # and the output + +SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +CREATE PROCEDURE sp0() SELECT 1; +SHOW CREATE PROCEDURE sp0; +DROP PROCEDURE sp0; + +#Check that CREATE/SHOW does not use memory in caches. +SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +CREATE PROCEDURE sp1() SELECT 1; +SHOW CREATE PROCEDURE sp1; +SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +# FIXME: MDEV-26754 main.sp test fails for embedded server +#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; +DROP PROCEDURE sp1; + +--echo # +--echo # End of 10.3 tests +--echo # diff --git a/mysql-test/main/sp.result b/mysql-test/main/sp.result index 3f14c9bec3e..6510eaf77f5 100644 --- a/mysql-test/main/sp.result +++ b/mysql-test/main/sp.result @@ -8893,23 +8893,4 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp BEGIN RETURN ''; END' at line 2 -SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -CREATE PROCEDURE sp0() SELECT 1; -SHOW CREATE PROCEDURE sp0; -Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -sp0 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp0`() -SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci -DROP PROCEDURE sp0; -SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -CREATE PROCEDURE sp1() SELECT 1; -SHOW CREATE PROCEDURE sp1; -Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation -sp1 STRICT_ALL_TABLES CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`() -SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci -SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -VARIABLE_VALUE-@local_mem_used -0 -DROP PROCEDURE sp1; # End of 10.3 tests diff --git a/mysql-test/main/sp.test b/mysql-test/main/sp.test index c56c290caad..18317e02f3e 100644 --- a/mysql-test/main/sp.test +++ b/mysql-test/main/sp.test @@ -10432,22 +10432,4 @@ END; $$ DELIMITER ;$$ -# MDEV-20699 do not cache SP in SHOW CREATE -# Warmup round, this might allocate some memory for session variable -# and the output -SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -CREATE PROCEDURE sp0() SELECT 1; -SHOW CREATE PROCEDURE sp0; -DROP PROCEDURE sp0; - -#Check that CREATE/SHOW does not use memory in caches. -SELECT VARIABLE_VALUE into @global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -SELECT VARIABLE_VALUE into @local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -CREATE PROCEDURE sp1() SELECT 1; -SHOW CREATE PROCEDURE sp1; -SELECT VARIABLE_VALUE-@local_mem_used FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -# FIXME: MDEV-26754 main.sp test fails for embedded server -#SELECT VARIABLE_VALUE-@global_mem_used FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME='MEMORY_USED'; -DROP PROCEDURE sp1; --echo # End of 10.3 tests From bb46b79c8c04d45e8f438554f25bff71f415dce7 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Tue, 2 Nov 2021 13:09:35 +0100 Subject: [PATCH 5/6] Fix mutex order according to a new sequence. --- sql/sql_parse.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 6587a948760..7c27a686ed5 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -9269,8 +9269,8 @@ static my_bool kill_threads_callback(THD *thd, kill_threads_callback_arg *arg) return 1; if (!arg->threads_to_kill.push_back(thd, arg->thd->mem_root)) { - mysql_mutex_lock(&thd->LOCK_thd_data); mysql_mutex_lock(&thd->LOCK_thd_kill); // Lock from delete + mysql_mutex_lock(&thd->LOCK_thd_data); } } } From eb2c3d38e4c9167b385aeb5b3660eb01359f6820 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Tue, 2 Nov 2021 15:34:47 +0100 Subject: [PATCH 6/6] post merge result fix --- mysql-test/suite/galera/r/galera_ssl_upgrade.result | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/suite/galera/r/galera_ssl_upgrade.result b/mysql-test/suite/galera/r/galera_ssl_upgrade.result index 32b5cf10757..9993b86e0e9 100644 --- a/mysql-test/suite/galera/r/galera_ssl_upgrade.result +++ b/mysql-test/suite/galera/r/galera_ssl_upgrade.result @@ -1,3 +1,5 @@ +connection node_2; +connection node_1; connection node_1; call mtr.add_suppression("WSREP: write_handler().*"); connection node_2; @@ -24,6 +26,7 @@ connection node_1; SELECT VARIABLE_VALUE = 2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_cluster_size'; VARIABLE_VALUE = 2 1 +connection node_2; connection node_1; call mtr.add_suppression("WSREP: write_handler().*"); connection node_2;