mirror of
https://github.com/MariaDB/server.git
synced 2025-10-12 12:25:37 +03:00
MDEV-17058: Test failure on wsrep.variables MDEV-17060: Test failure on galera.galera_var_slave_threads Fix incorrect calculation of increased applier (slave) threads. Note that increase change takes effect "immediately" but we should use proper wait condition to wait it. Reducing the number of slave threads is not immediate as thread will only exit after a replication event.
81 lines
2.1 KiB
Plaintext
81 lines
2.1 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
|
|
|
|
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
|
|
|
|
--connection node_1
|
|
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
|
|
--let $wait_timeout=600
|
|
--let $wait_condition = SELECT COUNT(*) = 11 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
|
|
--source include/wait_condition.inc
|
|
|
|
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
|
|
SHOW STATUS LIKE 'wsrep_thread_count';
|
|
|
|
--connection node_2
|
|
# Generate 11 replication events
|
|
--let $count = 11
|
|
while ($count)
|
|
{
|
|
INSERT INTO t1 VALUES (1);
|
|
--dec $count
|
|
}
|
|
|
|
--connection node_1
|
|
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
--let $wait_condition = SELECT COUNT(*) = 11 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL wsrep_slave_threads = 20;
|
|
--let $wait_condition = SELECT COUNT(*) = 21 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
|
|
--connection node_2
|
|
# Generate 21 replication events
|
|
--let $count = 21
|
|
while ($count)
|
|
{
|
|
INSERT INTO t1 VALUES (1);
|
|
--dec $count
|
|
}
|
|
|
|
SET GLOBAL wsrep_slave_threads = 10;
|
|
SET GLOBAL wsrep_slave_threads = 0;
|
|
|
|
--connection node_2
|
|
# Generate 21 replication events
|
|
--let $count = 21
|
|
while ($count)
|
|
{
|
|
INSERT INTO t1 VALUES (1);
|
|
--dec $count
|
|
}
|
|
|
|
--connection node_1
|
|
--let $wait_condition = SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND (STATE IS NULL OR STATE NOT LIKE 'InnoDB%');
|
|
--source include/wait_condition.inc
|
|
|
|
SET GLOBAL wsrep_slave_threads = 1;
|
|
|
|
--connection node_2
|
|
# Generate 21 replication events
|
|
--let $count = 21
|
|
while ($count)
|
|
{
|
|
INSERT INTO t1 VALUES (1);
|
|
--dec $count
|
|
}
|
|
|
|
--connection node_1
|
|
DROP TABLE t1;
|