include/master-slave.inc [connection master] connection slave; include/stop_slave.inc CHANGE MASTER TO MASTER_USE_GTID=NO; include/start_slave.inc connection slave; SET @old_debug_slave= @@global.debug; stop slave; SET GLOBAL slave_parallel_threads=4; set global slave_parallel_mode=optimistic; set global gtid_strict_mode=1; start slave; connection master; call mtr.add_suppression("ALTER query started at .+ could not be completed"); SET @old_debug_master= @@global.debug; set binlog_alter_two_phase=true; create table t3( a int primary key, b int) engine=innodb; connection master; connection slave; include/stop_slave.inc connection master; SET SESSION debug_dbug="d,start_alter_kill_after_binlog"; alter table t3 add column d int; ERROR HY000: Lost connection to server during query include/rpl_reconnect.inc set binlog_alter_two_phase= true; alter table t3 add column d int; show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000001 # Gtid # # BEGIN GTID #-#-# master-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'ALTER query started at .+ could not be completed' COLLATE 'latin1_swedish_ci')) master-bin.000001 # Query # # COMMIT master-bin.000001 # Gtid # # GTID #-#-# master-bin.000001 # Query # # use `test`; create table t3( a int primary key, b int) engine=innodb master-bin.000001 # Gtid # # GTID #-#-# START ALTER master-bin.000001 # Query # # use `test`; alter table t3 add column d int include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info master-bin.000002 # Gtid # # GTID #-#-# START ALTER master-bin.000002 # Query # # use `test`; alter table t3 add column d int master-bin.000002 # Gtid # # GTID #-#-# COMMIT ALTER id=# master-bin.000002 # Query # # use `test`; alter table t3 add column d int connection slave; include/start_slave.inc connection master; connection slave; include/show_binlog_events.inc Log_name Pos Event_type Server_id End_log_pos Info slave-bin.000001 # Gtid # # BEGIN GTID #-#-# slave-bin.000001 # Query # # use `mtr`; INSERT INTO test_suppressions (pattern) VALUES ( NAME_CONST('pattern',_latin1'ALTER query started at .+ could not be completed' COLLATE 'latin1_swedish_ci')) slave-bin.000001 # Query # # COMMIT slave-bin.000001 # Gtid # # GTID #-#-# slave-bin.000001 # Query # # use `test`; create table t3( a int primary key, b int) engine=innodb slave-bin.000001 # Gtid # # GTID #-#-# START ALTER slave-bin.000001 # Query # # use `test`; alter table t3 add column d int slave-bin.000001 # Gtid # # GTID #-#-# START ALTER slave-bin.000001 # Query # # use `test`; alter table t3 add column d int slave-bin.000001 # Gtid # # GTID #-#-# COMMIT ALTER id=# slave-bin.000001 # Query # # use `test`; alter table t3 add column d int show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`a`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci connection master; SET GLOBAL debug_dbug= @old_debug_master; drop table t3; set global binlog_alter_two_phase = 0; connection slave; SET GLOBAL debug_dbug= @old_debug_slave; stop slave; set global slave_parallel_threads = 0;; set global slave_parallel_mode = optimistic;; set global gtid_strict_mode = 0;; start slave; connection master; include/rpl_end.inc