Current Path : /home/usr.opt/mysql57/mysql-test/suite/rpl/t/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //home/usr.opt/mysql57/mysql-test/suite/rpl/t/rpl_manual_change_index_file.test |
source include/not_windows.inc; --source include/not_group_replication_plugin.inc source include/not_gtid_enabled.inc; source include/master-slave.inc; # # BUG#28421 Infinite loop on slave relay logs # # That, manually deleteing one or more entries from 'master-bin.index', will # cause master infinitely loop to send one binlog file. # # Manually changing index file is a illegal action, so when this happen, we # send a fatal error to slave and close the dump session. FLUSH LOGS; # Now, 2 entries in index file. # ./master-bin.000001 # ./master-bin.000002 CREATE TABLE t1(c1 INT); # Now, the current dump file(master-bin.000002) is the second line of index # file --source include/sync_slave_sql_with_master.inc # Now, all events has been replicate to slave. As current dump file # (master-bin.000002) is the last binlog file, so master is waiting for new # events. connection master; # Delete './master-bin.000001' from index file. let $MYSQLD_DATADIR= `SELECT @@DATADIR`; let $file= $MYSQLD_DATADIR/master-bin.index; source include/truncate_file.inc; if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) NOT IN ('Win32', 'Win64', 'Windows')`) { append_file $MYSQLD_DATADIR/master-bin.index; ./master-bin.000002 EOF sleep 0.00000001; } if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) IN ('Win32', 'Win64', 'Windows')`) { append_file $MYSQLD_DATADIR/master-bin.index; .\master-bin.000002 EOF sleep 0.00000001; } # Now, only 1 entry in index file. ./master-bin.000002 # Generate master-bin.000003, but it is in the second line. FLUSH LOGS; # Now, 2 entries in index file. # ./master-bin.000002 # ./master-bin.000003 # Now, master know that new binlog file(master-bin.000003) has been generated. # It expects that the new binlog file is in third line of index file, but # there is no third line in index file. It is so strange that master sends an # error to slave. call mtr.add_suppression('Got fatal error 1236 from master when reading data from binary log: .*could not find next log'); connection slave; # 1236 = ER_MASTER_FATAL_ERROR_READING_BINLOG --let $slave_io_errno= 1236 --let $show_slave_io_error= 1 # Mask line numbers --let $slave_io_error_replace= / at [0-9]*/ at XXX/ --source include/wait_for_slave_io_error.inc connection master; source include/truncate_file.inc; if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) NOT IN ('Win32', 'Win64', 'Windows')`) { append_file $MYSQLD_DATADIR/master-bin.index; ./master-bin.000001 ./master-bin.000002 ./master-bin.000003 EOF sleep 0.00000001; } if (`SELECT CONVERT(@@VERSION_COMPILE_OS USING latin1) IN ('Win32', 'Win64', 'Windows')`) { append_file $MYSQLD_DATADIR/master-bin.index; .\master-bin.000001 .\master-bin.000002 .\master-bin.000003 EOF sleep 0.00000001; } CREATE TABLE t2(c1 INT); FLUSH LOGS; CREATE TABLE t3(c1 INT); FLUSH LOGS; CREATE TABLE t4(c1 INT); connection slave; START SLAVE IO_THREAD; source include/wait_for_slave_io_to_start.inc; connection master; --source include/sync_slave_sql_with_master.inc SHOW TABLES; connection master; DROP TABLE t1, t2, t3, t4; --source include/sync_slave_sql_with_master.inc --echo --echo # BUG#21437 server_errno=29 error message flood mysqld error log --echo # -------------------------------------------------------------------------- --echo # This test verifies if the ER_MASTER_FATAL_ERROR_READING_BINLOG which --echo # insteads of EE_FILENOTFOUND error is sent to slave, so that the slave --echo # I/O thread stops immediately. --source include/rpl_reset.inc connection master; --echo [ on master ] call mtr.add_suppression("Got fatal error 1236 from master when reading data from binary log:"); let $MASTER_DATADIR= `SELECT @@DATADIR`; CREATE TABLE t1(c1 int); DROP TABLE t1; FLUSH LOGS; CREATE TABLE t2(c1 int); DROP TABLE t2; --source include/sync_slave_sql_with_master.inc --echo [ on slave ] source include/stop_slave.inc; connection master; --echo [ on master ] --echo # This operation will result in error EE_FILENOTFOUND which happens --echo # when slave IO thread is connecting to master. move_file $MASTER_DATADIR/master-bin.000001 $MASTER_DATADIR/master-bin.bak; connection slave; --echo [ on slave ] CHANGE MASTER TO master_host='127.0.0.1', master_log_file='master-bin.000001'; START SLAVE IO_THREAD; --echo # Instead of EE_FILENOTFOUND, ER_MASTER_FATAL_ERROR_READING_BINLOG --echo # and the specific information are sent to slave. --let $slave_io_errno= 1236 --let $show_slave_io_error= 1 --source include/wait_for_slave_io_error.inc connection master; --echo [ on master ] --echo # Restore master-bin.000001 file move_file $MASTER_DATADIR/master-bin.bak $MASTER_DATADIR/master-bin.000001; connection slave; --echo [ on slave ] CHANGE MASTER TO master_host='127.0.0.1', master_log_file='master-bin.000002'; source include/start_slave.inc; connection master; --echo [ on master ] CREATE TABLE t1(c1 INT); --source include/sync_slave_sql_with_master.inc --echo [ on slave ] SELECT * FROM t1; connection master; DROP TABLE t1; --source include/rpl_end.inc