Skip to content

Commit d72038a

Browse files
author
Jan Lindström
committed
MDEV-21667 : Galera test failure on MW-336
Problem seems to be the fact that we did not enforce correct applier thread numbers after every command that effects them. Test changes only.
1 parent a30ab52 commit d72038a

File tree

2 files changed

+96
-24
lines changed

2 files changed

+96
-24
lines changed

mysql-test/suite/galera/r/MW-336.result

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,27 @@ connection node_1;
22
CREATE TABLE t1 (f1 INTEGER) Engine=InnoDB;
33
SET GLOBAL wsrep_slave_threads = 10;
44
# Set slave threads to 10 step 1
5+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
6+
EXPECT_10
7+
10
58
SET GLOBAL wsrep_slave_threads = 1;
69
connection node_2;
710
INSERT INTO t1 VALUES (1);
811
connection node_1;
12+
# Wait until one of the appliers has exited
13+
SELECT VARIABLE_VALUE AS EXPECT_9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
14+
EXPECT_9
15+
9
916
SET GLOBAL wsrep_slave_threads = 10;
1017
# Set slave threads to 10 step 2
18+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
19+
EXPECT_10
20+
10
1121
SET GLOBAL wsrep_slave_threads = 20;
1222
# Set slave threads to 20
23+
SELECT VARIABLE_VALUE AS EXPECT_20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
24+
EXPECT_20
25+
20
1326
SET GLOBAL wsrep_slave_threads = 1;
1427
connection node_2;
1528
INSERT INTO t1 VALUES (1);
@@ -22,28 +35,47 @@ INSERT INTO t1 VALUES (7);
2235
INSERT INTO t1 VALUES (8);
2336
INSERT INTO t1 VALUES (9);
2437
INSERT INTO t1 VALUES (10);
25-
connection node_1;
26-
SET GLOBAL wsrep_slave_threads = 10;
27-
SELECT COUNT(*) FROM t1;
28-
COUNT(*)
29-
11
30-
# Set slave threads to 10 step 3
31-
connection node_2;
3238
INSERT INTO t1 VALUES (11);
3339
INSERT INTO t1 VALUES (12);
3440
INSERT INTO t1 VALUES (13);
3541
INSERT INTO t1 VALUES (14);
36-
INSERT INTO t1 VALUES (15);
3742
INSERT INTO t1 VALUES (16);
3843
INSERT INTO t1 VALUES (17);
3944
INSERT INTO t1 VALUES (18);
4045
INSERT INTO t1 VALUES (19);
4146
INSERT INTO t1 VALUES (20);
47+
connection node_1;
48+
# Wait until 19 of the appliers has exited
49+
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
50+
EXPECT_1
51+
1
52+
SELECT COUNT(*) FROM t1;
53+
COUNT(*)
54+
20
55+
SET GLOBAL wsrep_slave_threads = 10;
56+
# Set slave threads to 10 step 3
57+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
58+
EXPECT_10
59+
10
60+
connection node_1;
61+
SET GLOBAL wsrep_slave_threads = 1;
62+
connection node_2;
4263
INSERT INTO t1 VALUES (21);
4364
INSERT INTO t1 VALUES (22);
65+
INSERT INTO t1 VALUES (23);
66+
INSERT INTO t1 VALUES (24);
67+
INSERT INTO t1 VALUES (25);
68+
INSERT INTO t1 VALUES (26);
69+
INSERT INTO t1 VALUES (27);
70+
INSERT INTO t1 VALUES (28);
71+
INSERT INTO t1 VALUES (29);
72+
INSERT INTO t1 VALUES (30);
4473
connection node_1;
74+
# Wait until slave threads back to 1
75+
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
76+
EXPECT_1
77+
1
4578
SELECT COUNT(*) FROM t1;
4679
COUNT(*)
47-
23
48-
SET GLOBAL wsrep_slave_threads = 1;
80+
30
4981
DROP TABLE t1;

mysql-test/suite/galera/t/MW-336.test

Lines changed: 54 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,27 +17,40 @@ SET GLOBAL wsrep_slave_threads = 10;
1717
--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
1818
--source include/wait_condition_with_debug.inc
1919

20+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
21+
2022
SET GLOBAL wsrep_slave_threads = 1;
2123

2224
--connection node_2
2325
INSERT INTO t1 VALUES (1);
2426

2527
--connection node_1
28+
--echo # Wait until one of the appliers has exited
29+
--let $wait_condition = SELECT VARIABLE_VALUE = 9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
30+
--let $wait_condition_on_error_output = SELECT COUNT(*), 9 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
31+
--source include/wait_condition_with_debug.inc
32+
33+
SELECT VARIABLE_VALUE AS EXPECT_9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
34+
2635
SET GLOBAL wsrep_slave_threads = 10;
2736

2837
# Note that above insert could be handled by one of the slave threads
2938
--echo # Set slave threads to 10 step 2
30-
--let $wait_condition = SELECT VARIABLE_VALUE >= 9 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
31-
--let $wait_condition_on_error_output = SELECT COUNT(*), 9 as EXPECTED_VALUE FROM INFORMATION_SCHEMA.PROCESSLIST WHERE USER = 'system user' AND STATE = 'wsrep applier idle'; show processlist
39+
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
40+
--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
3241
--source include/wait_condition_with_debug.inc
3342

43+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
44+
3445
SET GLOBAL wsrep_slave_threads = 20;
3546

3647
--echo # Set slave threads to 20
3748
--let $wait_condition = SELECT VARIABLE_VALUE = 20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
3849
--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
3950
--source include/wait_condition_with_debug.inc
4051

52+
SELECT VARIABLE_VALUE AS EXPECT_20 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
53+
4154
SET GLOBAL wsrep_slave_threads = 1;
4255

4356
--connection node_2
@@ -51,30 +64,57 @@ INSERT INTO t1 VALUES (7);
5164
INSERT INTO t1 VALUES (8);
5265
INSERT INTO t1 VALUES (9);
5366
INSERT INTO t1 VALUES (10);
54-
55-
--connection node_1
56-
SET GLOBAL wsrep_slave_threads = 10;
57-
SELECT COUNT(*) FROM t1;
58-
--echo # Set slave threads to 10 step 3
59-
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
60-
--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
61-
--source include/wait_condition_with_debug.inc
62-
63-
--connection node_2
6467
INSERT INTO t1 VALUES (11);
6568
INSERT INTO t1 VALUES (12);
6669
INSERT INTO t1 VALUES (13);
6770
INSERT INTO t1 VALUES (14);
68-
INSERT INTO t1 VALUES (15);
6971
INSERT INTO t1 VALUES (16);
7072
INSERT INTO t1 VALUES (17);
7173
INSERT INTO t1 VALUES (18);
7274
INSERT INTO t1 VALUES (19);
7375
INSERT INTO t1 VALUES (20);
76+
77+
--connection node_1
78+
--echo # Wait until 19 of the appliers has exited
79+
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
80+
--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
81+
--source include/wait_condition_with_debug.inc
82+
83+
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
84+
85+
SELECT COUNT(*) FROM t1;
86+
87+
SET GLOBAL wsrep_slave_threads = 10;
88+
--echo # Set slave threads to 10 step 3
89+
--let $wait_condition = SELECT VARIABLE_VALUE = 10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
90+
--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
91+
--source include/wait_condition_with_debug.inc
92+
93+
SELECT VARIABLE_VALUE AS EXPECT_10 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
94+
95+
--connection node_1
96+
SET GLOBAL wsrep_slave_threads = 1;
97+
98+
--connection node_2
7499
INSERT INTO t1 VALUES (21);
75100
INSERT INTO t1 VALUES (22);
101+
INSERT INTO t1 VALUES (23);
102+
INSERT INTO t1 VALUES (24);
103+
INSERT INTO t1 VALUES (25);
104+
INSERT INTO t1 VALUES (26);
105+
INSERT INTO t1 VALUES (27);
106+
INSERT INTO t1 VALUES (28);
107+
INSERT INTO t1 VALUES (29);
108+
INSERT INTO t1 VALUES (30);
76109

77110
--connection node_1
111+
--echo # Wait until slave threads back to 1
112+
--let $wait_condition = SELECT VARIABLE_VALUE = 1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
113+
--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
114+
--source include/wait_condition_with_debug.inc
115+
116+
SELECT VARIABLE_VALUE AS EXPECT_1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME = 'wsrep_applier_thread_count';
117+
78118
SELECT COUNT(*) FROM t1;
79-
SET GLOBAL wsrep_slave_threads = 1;
119+
80120
DROP TABLE t1;

0 commit comments

Comments
 (0)