mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 01:04:19 +01:00
74e581b7c4
MDEV-7106: Sporadic test failure in multi_source.gtid MDEV-7153: Yet another sporadic failure of multi_source.gtid in buildbot This patch fixes three races in the multi_source.gtid test case that could cause sporadic failures: 1. Do not put SHOW ALL SLAVES STATUS in the output, the output is not stable. 2. Ensure that slave1 has replicated as far as expected, before stopping its connection to master1 (otherwise the following wait will time out due to rows not replicated from master1). 3. Ensure that slave2 has replicated far enough before connecting slave1 to it (otherwise we get an error during connect that slave1 is ahead of slave2).
99 lines
3.1 KiB
Text
99 lines
3.1 KiB
Text
CHANGE MASTER 'slave1' TO master_port=MYPORT_1, master_host='127.0.0.1', master_user='root';
|
|
CHANGE MASTER 'slave2' TO master_port=MYPORT_2, master_host='127.0.0.1', master_user='root';
|
|
set default_master_connection = 'slave1';
|
|
START SLAVE;
|
|
include/wait_for_slave_to_start.inc
|
|
set default_master_connection = 'slave2';
|
|
START SLAVE;
|
|
include/wait_for_slave_to_start.inc
|
|
set default_master_connection = '';
|
|
CHANGE MASTER TO master_port=MYPORT_3, master_host='127.0.0.1', master_user='root';
|
|
start all slaves;
|
|
Warnings:
|
|
Note 1937 SLAVE '' started
|
|
include/wait_for_slave_to_start.inc
|
|
SET GLOBAL gtid_domain_id= 1;
|
|
SET SESSION gtid_domain_id= 1;
|
|
CREATE TABLE t3 (a INT PRIMARY KEY, b VARCHAR(10)) ENGINE=InnoDB;
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(10));
|
|
INSERT INTO t1 VALUES (1, "initial");
|
|
INSERT INTO t3 VALUES (101, "initial 1");
|
|
SET GLOBAL gtid_domain_id= 2;
|
|
SET SESSION gtid_domain_id= 2;
|
|
CREATE TABLE t2 (a INT PRIMARY KEY, b VARCHAR(10)) ENGINE=InnoDB;
|
|
INSERT INTO t2 VALUES (1, "initial");
|
|
SET SQL_LOG_BIN=0;
|
|
CREATE TABLE t3 (a INT PRIMARY KEY, b VARCHAR(10));
|
|
SET SQL_LOG_BIN=1;
|
|
INSERT INTO t3 VALUES (201, "initial 2");
|
|
*** Now move slave2 to replicate from both master1 and master2 instead of just slave1 ***
|
|
STOP ALL SLAVES;
|
|
Warnings:
|
|
Note 1938 SLAVE '' stopped
|
|
INSERT INTO t1 VALUES (2, "switch1");
|
|
INSERT INTO t3 VALUES (102, "switch1 a");
|
|
INSERT INTO t2 VALUES (2, "switch1");
|
|
INSERT INTO t3 VALUES (202, "switch1 b");
|
|
CHANGE MASTER 'slave1' TO master_port=MYPORT_1, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
|
CHANGE MASTER 'slave2' TO master_port=MYPORT_2, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
|
SET default_master_connection = 'slave1';
|
|
START SLAVE;
|
|
include/wait_for_slave_to_start.inc
|
|
SET default_master_connection = 'slave2';
|
|
START SLAVE;
|
|
include/wait_for_slave_to_start.inc
|
|
set default_master_connection = '';
|
|
*** Move slave1 to replicate from slave2 instead of from master1 and master2 ***
|
|
STOP SLAVE 'slave1';
|
|
INSERT INTO t1 VALUES (3, "switch 2");
|
|
INSERT INTO t3 VALUES (103, "switch 2 a");
|
|
INSERT INTO t2 VALUES (3, "switch 2");
|
|
INSERT INTO t3 VALUES (203, "switch 2 b");
|
|
include/save_master_gtid.inc
|
|
STOP SLAVE 'slave2';
|
|
INSERT INTO t2 VALUES (4, "switch 3");
|
|
INSERT INTO t3 VALUES (204, "switch 3 b");
|
|
include/sync_with_master_gtid.inc
|
|
CHANGE MASTER TO master_port=MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
|
START SLAVE;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 initial
|
|
2 switch1
|
|
3 switch 2
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 initial
|
|
2 switch1
|
|
3 switch 2
|
|
4 switch 3
|
|
SELECT * FROM t3 ORDER BY a;
|
|
a b
|
|
101 initial 1
|
|
102 switch1 a
|
|
103 switch 2 a
|
|
201 initial 2
|
|
202 switch1 b
|
|
203 switch 2 b
|
|
204 switch 3 b
|
|
DROP TABLE t1;
|
|
SET SQL_LOG_BIN=0;
|
|
DROP TABLE t3;
|
|
SET SQL_LOG_BIN=1;
|
|
DROP TABLE t2;
|
|
DROP TABLE t3;
|
|
SET GLOBAL gtid_domain_id=0;
|
|
STOP ALL SLAVES;
|
|
Warnings:
|
|
Note 1938 SLAVE '' stopped
|
|
include/reset_master_slave.inc
|
|
SET GLOBAL gtid_domain_id=0;
|
|
STOP ALL SLAVES;
|
|
Warnings:
|
|
Note 1938 SLAVE 'slave1' stopped
|
|
Note 1938 SLAVE 'slave2' stopped
|
|
include/reset_master_slave.inc
|
|
SET GLOBAL gtid_domain_id=0;
|
|
include/reset_master_slave.inc
|
|
SET GLOBAL gtid_domain_id=0;
|
|
include/reset_master_slave.inc
|