mirror of
https://github.com/MariaDB/server.git
synced 2025-06-04 18:03:14 +03:00
Problem was that tests select INFORMATION_SCHEMA.PROCESSLIST processes from user system user and empty state. Thus, there is not clear state for slave threads. Changes: - Added new status variables that store current amount of applier threads (wsrep_applier_thread_count) and rollbacker threads (wsrep_rollbacker_thread_count). This will make clear how many slave threads of certain type there is. - Added THD state "wsrep applier idle" when applier slave thread is waiting for work. This makes finding slave/applier threads easier. - Added force-restart option for mtr to always restart servers between tests to avoid race on start of the test - Added wait_condition_with_debug to wait until the passed statement returns true, or the operation times out. If operation times out, the additional error statement will be executed Changes to be committed: new file: mysql-test/include/force_restart.inc new file: mysql-test/include/wait_condition_with_debug.inc modified: mysql-test/mysql-test-run.pl modified: mysql-test/suite/galera/disabled.def modified: mysql-test/suite/galera/r/MW-336.result modified: mysql-test/suite/galera/r/galera_kill_applier.result modified: mysql-test/suite/galera/r/galera_var_slave_threads.result new file: mysql-test/suite/galera/t/MW-336.cnf modified: mysql-test/suite/galera/t/MW-336.test modified: mysql-test/suite/galera/t/galera_kill_applier.test modified: mysql-test/suite/galera/t/galera_parallel_autoinc_largetrx.test modified: mysql-test/suite/galera/t/galera_parallel_autoinc_manytrx.test modified: mysql-test/suite/galera/t/galera_var_slave_threads.test modified: mysql-test/suite/wsrep/disabled.def modified: mysql-test/suite/wsrep/r/variables.result modified: mysql-test/suite/wsrep/t/variables.test modified: sql/mysqld.cc modified: sql/wsrep_mysqld.cc modified: sql/wsrep_mysqld.h modified: sql/wsrep_thd.cc modified: sql/wsrep_var.cc
169 lines
5.1 KiB
Plaintext
169 lines
5.1 KiB
Plaintext
--source include/have_wsrep.inc
|
|
--source include/force_restart.inc
|
|
|
|
SET @wsrep_provider_options_saved= @@global.wsrep_provider_options;
|
|
SET @wsrep_cluster_address_saved= @@global.wsrep_cluster_address;
|
|
|
|
--echo
|
|
--echo # MDEV#5534: mysql_tzinfo_to_sql generates wrong query
|
|
--echo #
|
|
--echo # Testing wsrep_replicate_myisam variable.
|
|
|
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
SELECT @@session.wsrep_replicate_myisam;
|
|
SELECT @@global.wsrep_replicate_myisam;
|
|
|
|
--error ER_GLOBAL_VARIABLE
|
|
SET SESSION wsrep_replicate_myisam= ON;
|
|
SET GLOBAL wsrep_replicate_myisam= ON;
|
|
|
|
# Reset it back.
|
|
SET GLOBAL wsrep_replicate_myisam= OFF;
|
|
SET GLOBAL wsrep_provider=none;
|
|
|
|
--echo #
|
|
--echo # MDEV#5790: SHOW GLOBAL STATUS LIKE does not show the correct list of
|
|
--echo # variables when using "_"
|
|
--echo #
|
|
|
|
CALL mtr.add_suppression("WSREP: Could not open saved state file for reading.*");
|
|
|
|
--disable_result_log
|
|
--disable_query_log
|
|
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
|
|
--let $galera_version=25.3.24
|
|
source include/check_galera_version.inc;
|
|
--enable_result_log
|
|
--enable_query_log
|
|
|
|
--echo # wsrep
|
|
--sorted_result
|
|
--replace_column 2 #
|
|
SHOW GLOBAL STATUS LIKE 'wsrep%';
|
|
|
|
--replace_column 2 #
|
|
SHOW GLOBAL STATUS LIKE 'wsrep_local_state_comment';
|
|
|
|
--echo # Should show nothing.
|
|
SHOW STATUS LIKE 'x';
|
|
|
|
# Reset it back.
|
|
SET GLOBAL wsrep_provider=none;
|
|
|
|
--echo #
|
|
--echo # MDEV#6079: xtrabackup SST failing with maria-10.0-galera
|
|
--echo #
|
|
|
|
--disable_query_log
|
|
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
|
|
--enable_query_log
|
|
|
|
# The following 2 variables are used in innobackupex during xtrabackup-based
|
|
# SST.
|
|
--echo
|
|
--replace_column 2 #
|
|
SHOW STATUS LIKE 'wsrep_local_state_uuid';
|
|
--echo
|
|
--replace_column 2 #
|
|
SHOW STATUS LIKE 'wsrep_last_committed';
|
|
|
|
# Reset it back.
|
|
SET GLOBAL wsrep_provider=none;
|
|
|
|
--echo
|
|
--echo #
|
|
--echo # MDEV#6206: wsrep_slave_threads subtracts from max_connections
|
|
--echo #
|
|
call mtr.add_suppression("WSREP: Failed to get provider options");
|
|
|
|
--disable_query_log
|
|
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
|
|
--enable_query_log
|
|
|
|
--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
|
|
SELECT @@global.wsrep_provider;
|
|
SELECT @@global.wsrep_slave_threads;
|
|
SELECT @@global.wsrep_cluster_address;
|
|
SHOW STATUS LIKE 'threads_connected';
|
|
SHOW STATUS LIKE 'wsrep_thread_count';
|
|
--echo
|
|
|
|
--disable_query_log
|
|
eval SET GLOBAL wsrep_provider= '$WSREP_PROVIDER';
|
|
--enable_query_log
|
|
|
|
--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
|
|
SELECT @@global.wsrep_provider;
|
|
SELECT @@global.wsrep_cluster_address;
|
|
SHOW STATUS LIKE 'threads_connected';
|
|
SHOW STATUS LIKE 'wsrep_thread_count';
|
|
--echo
|
|
|
|
--echo # Setting wsrep_cluster_address triggers the creation of
|
|
--echo # applier/rollbacker threads.
|
|
SET GLOBAL wsrep_cluster_address= 'gcomm://';
|
|
|
|
--echo # Wait for applier thread to get created 1.
|
|
--let $wait_timeout=600
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--source include/wait_condition.inc
|
|
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
|
|
|
|
--replace_regex /.*libgalera_smm.*/libgalera_smm.so/
|
|
SELECT @@global.wsrep_provider;
|
|
SELECT @@global.wsrep_cluster_address;
|
|
SHOW STATUS LIKE 'threads_connected';
|
|
SHOW STATUS LIKE 'wsrep_thread_count';
|
|
--echo
|
|
|
|
SET @wsrep_slave_threads_saved= @@global.wsrep_slave_threads;
|
|
SET GLOBAL wsrep_slave_threads= 10;
|
|
|
|
--echo # Wait for 9 applier threads to get created.
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--source include/wait_condition.inc
|
|
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_rollbacker_thread_count';
|
|
SELECT VARIABLE_VALUE FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_thread_count';
|
|
|
|
SHOW STATUS LIKE 'threads_connected';
|
|
|
|
#
|
|
# privileges for wsrep_on
|
|
#
|
|
set wsrep_on=0;
|
|
set wsrep_on=1;
|
|
create user test@localhost;
|
|
connect con1,localhost,test;
|
|
set auto_increment_increment=10;
|
|
--error ER_SPECIFIC_ACCESS_DENIED_ERROR
|
|
set wsrep_on=0;
|
|
disconnect con1;
|
|
connection default;
|
|
drop user test@localhost;
|
|
|
|
--echo #
|
|
--echo # MDEV#6411: Setting set @@global.wsrep_sst_auth=NULL causes crash
|
|
--echo #
|
|
SET @wsrep_sst_auth_saved= @@global.wsrep_sst_auth;
|
|
SET @@global.wsrep_sst_auth= 'user:pass';
|
|
SELECT @@global.wsrep_sst_auth;
|
|
SET @@global.wsrep_sst_auth= '';
|
|
SELECT @@global.wsrep_sst_auth;
|
|
SET @@global.wsrep_sst_auth= NULL;
|
|
SELECT @@global.wsrep_sst_auth;
|
|
SET @@global.wsrep_sst_auth= @wsrep_sst_auth_saved;
|
|
|
|
# Reset (for mtr internal checks)
|
|
SET GLOBAL wsrep_slave_threads= @wsrep_slave_threads_saved;
|
|
SET GLOBAL wsrep_provider= none;
|
|
SET GLOBAL wsrep_cluster_address= @wsrep_cluster_address_saved;
|
|
SET GLOBAL wsrep_provider_options= @wsrep_provider_options_saved;
|
|
|
|
--echo # End of test.
|
|
|