diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 12:24:36 +0000 |
commit | 06eaf7232e9a920468c0f8d74dcf2fe8b555501c (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/galera/t/galera_kill_applier.test | |
parent | Initial commit. (diff) | |
download | mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.tar.xz mariadb-06eaf7232e9a920468c0f8d74dcf2fe8b555501c.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/galera/t/galera_kill_applier.test')
-rw-r--r-- | mysql-test/suite/galera/t/galera_kill_applier.test | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mysql-test/suite/galera/t/galera_kill_applier.test b/mysql-test/suite/galera/t/galera_kill_applier.test new file mode 100644 index 00000000..88ec55ed --- /dev/null +++ b/mysql-test/suite/galera/t/galera_kill_applier.test @@ -0,0 +1,54 @@ +# +# This test checks that applier threads are immune to KILL QUERY and KILL STATEMENT +# + +--source include/galera_cluster.inc +--source include/have_innodb.inc +--source include/force_restart.inc + +--connection node_2 +SELECT @@wsrep_slave_threads; +SET GLOBAL wsrep_slave_threads=2; + +--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; +--let $wait_condition_on_error_output = SELECT COUNT(*), 2 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist +--source include/wait_condition_with_debug.inc + +--let $applier_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle' LIMIT 1` + +--replace_result $applier_thread ID +--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR +--eval KILL $applier_thread + +--replace_result $applier_thread ID +--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR +--eval KILL QUERY $applier_thread + +--let $aborter_thread = `SELECT ID FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep aborter idle' LIMIT 1` + +--replace_result $aborter_thread ID +--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR +--eval KILL $aborter_thread + +--replace_result $aborter_thread ID +--error ER_KILL_DENIED_ERROR,ER_KILL_DENIED_ERROR +--eval KILL QUERY $aborter_thread + +SET GLOBAL wsrep_slave_threads=DEFAULT; + +--connection node_1 +create table t1(a int not null primary key) engine=innodb; +insert into t1 values (1); +insert into t1 values (2); + +--connection node_2 +--echo # Wait until one of the appliers has exited +--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count'; +--let $wait_condition_on_error_output = SELECT COUNT(*), 1 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist +--source include/wait_condition_with_debug.inc + +select count(*) from t1; +SELECT @@wsrep_slave_threads; + +--connection node_1 +drop table t1; |