include/master-slave.inc [connection master] call mtr.add_suppression("Deadlock found"); call mtr.add_suppression("Can't find record in 't.'"); connection master; CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=innodb; INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4); connection slave; SHOW STATUS LIKE 'Slave_retried_transactions'; Variable_name Value Slave_retried_transactions 0 set @@global.slave_exec_mode= 'IDEMPOTENT'; UPDATE t1 SET a = 5, b = 47 WHERE a = 1; SELECT * FROM t1 ORDER BY a; a b 2 2 3 3 4 4 5 47 connection master; UPDATE t1 SET a = 5, b = 5 WHERE a = 1; SELECT * FROM t1 ORDER BY a; a b 2 2 3 3 4 4 5 5 connection slave; set @@global.slave_exec_mode= default; SHOW STATUS LIKE 'Slave_retried_transactions'; Variable_name Value Slave_retried_transactions 0 SELECT * FROM t1 ORDER BY a; a b 2 2 3 3 4 4 5 47 include/check_slave_is_running.inc connection slave; call mtr.add_suppression("Slave SQL.*Could not execute Update_rows event on table test.t1"); call mtr.add_suppression("Slave SQL for channel '': worker thread retried transaction"); call mtr.add_suppression("The slave coordinator and worker threads are stopped"); connection slave; set @save_innodb_lock_wait_timeout=@@global.innodb_lock_wait_timeout; set @save_slave_transaction_retries=@@global.slave_transaction_retries; set @@global.innodb_lock_wait_timeout=1; set @@global.slave_transaction_retries=2; include/restart_slave.inc connection slave1; BEGIN; INSERT INTO t1 SET a = 6, b = 7; connection master; INSERT INTO t1 SET a = 99, b = 99; XA START 'xa1'; INSERT INTO t1 SET a = 6, b = 6; XA END 'xa1'; XA PREPARE 'xa1'; connection slave; include/wait_for_slave_sql_error.inc [errno=1213,1205] set @@global.innodb_lock_wait_timeout=1; set @@global.slave_transaction_retries=100; include/restart_slave.inc Warnings: Note 1255 Slave already has been stopped connection slave1; ROLLBACK; connection master; XA COMMIT 'xa1'; include/sync_slave_sql_with_master.inc connection slave; include/assert.inc [XA transaction record must be in the table] set @@global.innodb_lock_wait_timeout=@save_innodb_lock_wait_timeout; set @@global.slave_transaction_retries= @save_slave_transaction_retries; connection master; DROP TABLE t1; connection slave; connection master; include/rpl_end.inc