mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
f74c745a99
The ignored events are not written to the relay log, but instead a fake Rotate event is generated to handle update of position. Extend this for Gtid so we similarly generate a fake Gtid_list event to update the GTID position. Also fix an unrelated test issue that got triggered by the added test cases.
56 lines
1.6 KiB
Text
56 lines
1.6 KiB
Text
--source include/master-slave.inc
|
|
--source include/have_innodb.inc
|
|
--source include/have_debug.inc
|
|
|
|
CREATE TABLE t1 (i int) ENGINE=InnoDB;
|
|
|
|
--sync_slave_with_master
|
|
|
|
--echo *** MDEV-4484, incorrect error handling when entries in gtid_slave_pos not found. ***
|
|
TRUNCATE TABLE mysql.gtid_slave_pos;
|
|
|
|
--connection master
|
|
INSERT INTO t1 VALUES (1);
|
|
--sync_slave_with_master
|
|
|
|
# Inject an artificial error deleting entries, and check that the error handling code works.
|
|
--connection slave
|
|
--source include/stop_slave.inc
|
|
SET @old_dbug= @@GLOBAL.debug_dbug;
|
|
SET GLOBAL debug_dbug="+d,gtid_slave_pos_simulate_failed_delete";
|
|
SET sql_log_bin= 0;
|
|
CALL mtr.add_suppression("Can't find file");
|
|
# Since we inject an error updating mysql.gtid_slave_pos, we will get different
|
|
# output depending on whether it is InnoDB or MyISAM (roll back or no roll
|
|
# back). So fix it to make sure we are consistent.
|
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=MyISAM;
|
|
SET sql_log_bin= 1;
|
|
--source include/start_slave.inc
|
|
|
|
--connection master
|
|
INSERT INTO t1 VALUES (2);
|
|
|
|
--connection slave
|
|
--let $slave_sql_errno= 1942
|
|
--source include/wait_for_slave_sql_error.inc
|
|
STOP SLAVE IO_THREAD;
|
|
SELECT domain_id, server_id, seq_no FROM mysql.gtid_slave_pos
|
|
ORDER BY domain_id, sub_id DESC LIMIT 1;
|
|
SET GLOBAL debug_dbug= @old_dbug;
|
|
--source include/start_slave.inc
|
|
|
|
--connection master
|
|
INSERT INTO t1 VALUES (3);
|
|
--sync_slave_with_master
|
|
|
|
--connection slave
|
|
SELECT domain_id, server_id, seq_no FROM mysql.gtid_slave_pos
|
|
ORDER BY domain_id, sub_id DESC LIMIT 1;
|
|
SELECT * FROM t1 ORDER BY i;
|
|
|
|
|
|
# Clean up
|
|
--connection master
|
|
DROP TABLE t1;
|
|
|
|
--source include/rpl_end.inc
|