# Verify that after CHANGE MASTER, replication (I/O thread and SQL # thread) restart from where SQL thread left, not from where # I/O thread left (some old bug fixed in 4.0.17) source include/master-slave.inc; connection master; # Make SQL slave thread advance a bit create table t1(n int); sync_slave_with_master; select * from t1; # Now stop it and make I/O slave thread be ahead stop slave sql_thread; connection master; insert into t1 values(1); insert into t1 values(2); save_master_pos; let $slave_param= Read_Master_Log_Pos; let $slave_param_value= query_get_value(SHOW MASTER STATUS, Position, 1); connection slave; source include/wait_for_slave_param.inc; source include/stop_slave.inc; let $read_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1); let $exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1); if (`SELECT $read_pos = $exec_pos`) { source include/show_rpl_debug_info.inc; echo 'Read_Master_Log_Pos: $read_pos' == 'Exec_Master_Log_Pos: $exec_pos'; die Failed because Read_Master_Log_Pos is equal to Exec_Master_Log_Pos; } change master to master_user='root'; let $read_pos= query_get_value(SHOW SLAVE STATUS, Read_Master_Log_Pos, 1); let $exec_pos= query_get_value(SHOW SLAVE STATUS, Exec_Master_Log_Pos, 1); if (`SELECT $read_pos <> $exec_pos`) { source include/show_rpl_debug_info.inc; echo 'Read_Master_Log_Pos: $read_pos' <> 'Exec_Master_Log_Pos: $exec_pos'; die Failed because Read_Master_Log_Pos is not equal to Exec_Master_Log_Pos; } start slave; sync_with_master; select * from t1; connection master; drop table t1; save_master_pos; connection slave; sync_with_master; # End of 4.1 tests --echo master_bind tests connection slave; stop slave; --replace_column 1 # 7 # 8 # 9 # 22 # 23 # --replace_result $MASTER_MYPORT MASTER_PORT --query_vertical show slave status; change master to master_bind='127.0.0.1'; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 1 # 7 # 8 # 9 # 22 # 23 # --query_vertical show slave status; start slave; connection master; create table t1(n int); insert into t1 values(1); insert into t1 values(2); save_master_pos; connection slave; sync_with_master; select * from t1; connection slave; stop slave; --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 7 # 8 # 9 # 22 # 23 # --query_vertical show slave status; change master to master_bind='1.1.1.1'; connection master; insert into t1 values (3); save_master_pos; connection slave; start slave; --real_sleep 1 # wait for I/O thread to try connection --replace_result $MASTER_MYPORT MASTER_PORT --replace_column 7 # 8 # 9 # 22 # 23 # --query_vertical show slave status; select * from t1; connection slave; stop slave; eval change master to master_bind=''; start slave; sync_with_master; select * from t1; connection master; drop table t1; save_master_pos; connection slave; sync_with_master; --source include/rpl_end.inc