include/master-slave.inc [connection master] call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT"); SET GLOBAL max_binlog_cache_size = 4096; SET GLOBAL binlog_cache_size = 4096; SET GLOBAL max_binlog_stmt_cache_size = 4096; SET GLOBAL binlog_stmt_cache_size = 4096; CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb; CREATE TABLE t2(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MyIsam; CREATE TABLE t3(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=Innodb; ######################################################################################## # 1 - SINGLE STATEMENT ######################################################################################## *** Single statement on transactional table *** Got one of the listed errors *** Single statement on non-transactional table *** Got one of the listed errors include/wait_for_slave_sql_error_and_skip.inc [errno=1590] *** Single statement on both transactional and non-transactional tables. *** Got one of the listed errors include/wait_for_slave_sql_error_and_skip.inc [errno=1590] include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 2 - BEGIN - IMPLICIT COMMIT by DDL ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; set default_storage_engine=innodb; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors INSERT INTO t1 (a, data) VALUES (7, 's');; INSERT INTO t2 (a, data) VALUES (8, 's');; INSERT INTO t1 (a, data) VALUES (9, 's');; ALTER TABLE t3 ADD COLUMN d int; BEGIN; Got one of the listed errors Got one of the listed errors INSERT INTO t1 (a, data) VALUES (19, 's');; INSERT INTO t2 (a, data) VALUES (20, 's');; INSERT INTO t1 (a, data) VALUES (21, 's');; CREATE TABLE t4 SELECT * FROM t1; BEGIN; Got one of the listed errors Got one of the listed errors INSERT INTO t1 (a, data) VALUES (27, 's');; INSERT INTO t2 (a, data) VALUES (28, 's');; INSERT INTO t1 (a, data) VALUES (29, 's');; CREATE TABLE t5 (a int); include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 3 - BEGIN - COMMIT ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors COMMIT; include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 4 - BEGIN - ROLLBACK ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors ROLLBACK; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 5 - PROCEDURE ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; CREATE PROCEDURE p1(pd VARCHAR(30000)) BEGIN INSERT INTO t1 (a, data) VALUES (1, pd); INSERT INTO t1 (a, data) VALUES (2, pd); INSERT INTO t1 (a, data) VALUES (3, pd); INSERT INTO t1 (a, data) VALUES (4, pd); INSERT INTO t1 (a, data) VALUES (5, 's'); END// TRUNCATE TABLE t1; TRUNCATE TABLE t1; BEGIN; Got one of the listed errors COMMIT; TRUNCATE TABLE t1; BEGIN; Got one of the listed errors ROLLBACK; include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 6 - XID ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors INSERT INTO t1 (a, data) VALUES (7, 's');; INSERT INTO t2 (a, data) VALUES (8, 's');; INSERT INTO t1 (a, data) VALUES (9, 's');; ROLLBACK TO sv; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back COMMIT; include/diff_tables.inc [master:t1,slave:t1] ######################################################################################## # 7 - NON-TRANS TABLE ######################################################################################## TRUNCATE TABLE t1; TRUNCATE TABLE t2; TRUNCATE TABLE t3; BEGIN; Got one of the listed errors Got one of the listed errors Got one of the listed errors INSERT INTO t1 (a, data) VALUES (8, 's');; INSERT INTO t1 (a, data) VALUES (9, 's');; INSERT INTO t2 (a, data) VALUES (10, 's');; INSERT INTO t1 (a, data) VALUES (11, 's');; COMMIT; BEGIN; Got one of the listed errors COMMIT; include/diff_tables.inc [master:t1,slave:t1] ######################################################################## # 8 - Bug#55375(Regression Bug) Transaction bigger than # max_binlog_cache_size crashes slave ######################################################################## # [ On Slave ] SET GLOBAL max_binlog_cache_size = 4096; SET GLOBAL binlog_cache_size = 4096; SET GLOBAL max_binlog_stmt_cache_size = 4096; SET GLOBAL binlog_stmt_cache_size = 4096; include/stop_slave.inc include/start_slave.inc CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Multi-statement transaction required more than 'max_binlog_stmt_cache_size' bytes of storage.*"); CALL mtr.add_suppression("Writing one row to the row-based binary log failed.*"); CALL mtr.add_suppression("Slave SQL.*The incident LOST_EVENTS occured on the master. Message: error writing to the binary log"); TRUNCATE t1; SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_stmt_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_stmt_cache_size= ORIGINAL_VALUE; BEGIN; Repeat statement 'INSERT INTO t1 VALUES($n, repeat("a", 32))' 128 times COMMIT; include/wait_for_slave_sql_error.inc [errno=1197] SELECT count(*) FROM t1; count(*) 0 show binlog events in 'slave-bin.000001' from ; Log_name Pos Event_type Server_id End_log_pos Info SET GLOBAL max_binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_cache_size= ORIGINAL_VALUE; SET GLOBAL max_binlog_stmt_cache_size= ORIGINAL_VALUE; SET GLOBAL binlog_stmt_cache_size= ORIGINAL_VALUE; include/stop_slave.inc include/start_slave.inc SELECT count(*) FROM t1; count(*) 128 ######################################################################################## # CLEAN ######################################################################################## DROP TABLE t1; DROP TABLE t2; DROP TABLE t3; DROP TABLE IF EXISTS t4; DROP TABLE t5; DROP PROCEDURE p1; include/rpl_end.inc