mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
7bb022f3cf
Some GTID test cases were using include/wait_condition.inc with a condition like SELECT COUNT(*)=4 FROM t1 to wait for the slave to catch up with the master. This causes races and test failures, as the changes to the tables become visible at the COMMIT of the SQL thread (or even before in case of MyISAM), but the changes to @@gtid_slave_pos only become visible a little bit after the COMMIT. Now that we have MASTER_GTID_WAIT(), just use that to sync up in a GTID-friendly way, wrapped in nice include/save_master_gtid.inc and include/sync_with_master_gtid.inc scripts.
62 lines
1.6 KiB
Text
62 lines
1.6 KiB
Text
include/rpl_init.inc [topology=1->2]
|
|
SET @old_strict= @@GLOBAL.gtid_strict_mode;
|
|
SET GLOBAL gtid_strict_mode= 1;
|
|
select @@global.log_slave_updates;
|
|
@@global.log_slave_updates
|
|
0
|
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
|
INSERT INTO t1 VALUES (1, 1);
|
|
INSERT INTO t1 VALUES (2, 1);
|
|
SET @old_strict= @@GLOBAL.gtid_strict_mode;
|
|
SET GLOBAL gtid_strict_mode= 1;
|
|
select @@global.log_slave_updates;
|
|
@@global.log_slave_updates
|
|
0
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 1
|
|
2 1
|
|
include/stop_slave.inc
|
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SLAVE_PORT,
|
|
master_user = 'root', master_use_gtid = current_pos;
|
|
START SLAVE;
|
|
include/wait_for_slave_to_start.inc
|
|
INSERT INTO t1 VALUES (3, 2);
|
|
INSERT INTO t1 VALUES (4, 2);
|
|
include/save_master_gtid.inc
|
|
show binlog events from <binlog_start>;
|
|
Log_name Pos Event_type Server_id End_log_pos Info
|
|
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (3, 2)
|
|
slave-bin.000001 # Query # # COMMIT
|
|
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4, 2)
|
|
slave-bin.000001 # Query # # COMMIT
|
|
include/sync_with_master_gtid.inc
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 1
|
|
2 1
|
|
3 2
|
|
4 2
|
|
include/stop_slave.inc
|
|
RESET SLAVE;
|
|
INSERT INTO t1 VALUES (5, 1);
|
|
INSERT INTO t1 VALUES (6, 1);
|
|
include/save_master_gtid.inc
|
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
|
master_use_gtid = current_pos;
|
|
START SLAVE;
|
|
include/sync_with_master_gtid.inc
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 1
|
|
2 1
|
|
3 2
|
|
4 2
|
|
5 1
|
|
6 1
|
|
SET GLOBAL gtid_strict_mode= @old_strict;
|
|
SET GLOBAL gtid_strict_mode= @old_strict;
|
|
DROP TABLE t1;
|
|
include/rpl_end.inc
|