mirror of
https://github.com/MariaDB/server.git
synced 2025-11-25 17:25:02 +03:00
81 lines
3.0 KiB
Plaintext
81 lines
3.0 KiB
Plaintext
#
|
|
# MW-336 Slave threads may leak if variable wsrep_slave_threads is set repeatedly
|
|
#
|
|
|
|
--source include/galera_cluster.inc
|
|
--source include/have_innodb.inc
|
|
--source include/force_restart.inc
|
|
|
|
--connection node_1
|
|
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
|
|
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
|
|
# ensure that the threads have actually started running
|
|
--echo # Set slave threads to 10 step 1
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--let $wait_condition_on_error_output = SELECT COUNT(*), 10 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
|
|
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
|
|
--connection node_2
|
|
INSERT INTO t1 VALUES (1);
|
|
|
|
--connection node_1
|
|
SET SESSION wsrep_sync_wait=15;
|
|
SELECT COUNT(*) FROM t1;
|
|
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
|
|
--echo # Set slave threads to 10 step 2
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--let $wait_condition_on_error_output = SELECT COUNT(*), 10 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
|
|
|
|
SET GLOBAL wsrep_slave_threads = 20;
|
|
|
|
--echo # Set slave threads to 20
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--let $wait_condition_on_error_output = SELECT COUNT(*), 20 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
|
|
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
|
|
--connection node_2
|
|
INSERT INTO t1 VALUES (1);
|
|
INSERT INTO t1 VALUES (2);
|
|
INSERT INTO t1 VALUES (3);
|
|
INSERT INTO t1 VALUES (4);
|
|
INSERT INTO t1 VALUES (5);
|
|
INSERT INTO t1 VALUES (6);
|
|
INSERT INTO t1 VALUES (7);
|
|
INSERT INTO t1 VALUES (8);
|
|
INSERT INTO t1 VALUES (9);
|
|
INSERT INTO t1 VALUES (10);
|
|
|
|
--connection node_1
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
SELECT COUNT(*) FROM t1;
|
|
--echo # Set slave threads to 10 step 3
|
|
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
|
|
--let $wait_condition_on_error_output = SELECT COUNT(*), 10 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
|
|
|
|
--connection node_2
|
|
INSERT INTO t1 VALUES (11);
|
|
INSERT INTO t1 VALUES (12);
|
|
INSERT INTO t1 VALUES (13);
|
|
INSERT INTO t1 VALUES (14);
|
|
INSERT INTO t1 VALUES (15);
|
|
INSERT INTO t1 VALUES (16);
|
|
INSERT INTO t1 VALUES (17);
|
|
INSERT INTO t1 VALUES (18);
|
|
INSERT INTO t1 VALUES (19);
|
|
INSERT INTO t1 VALUES (20);
|
|
|
|
--connection node_1
|
|
SELECT COUNT(*) FROM t1;
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
DROP TABLE t1;
|