Current Path : /usr/opt/mysql57/mysql-test/suite/ndb_rpl/r/ |
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 : //usr/opt/mysql57/mysql-test/suite/ndb_rpl/r/ndb_rpl_slave_replay.result |
include/master-slave.inc Warnings: Note #### Sending passwords in plain text without SSL/TLS is extremely insecure. Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information. [connection master] use test; create table test.t1 (a int primary key, content varchar(1000)) engine=ndb; reset master; call mtr.add_suppression("NDB Slave : At SQL thread start applying epoch .*"); STOP SLAVE; CHANGE MASTER TO MASTER_LOG_POS=4; START SLAVE; Capture current count of epoch decline warnings insert into test.t1 values (6, repeat('B', 1000)); insert into test.t1 values (5, repeat('B', 1000)); insert into test.t1 values (4, repeat('B', 1000)); insert into test.t1 values (3, repeat('B', 1000)); insert into test.t1 values (2, repeat('B', 1000)); insert into test.t1 values (1, repeat('B', 1000)); Expect that we have at least 2 epochs logged. select count(1) > 1 from (select distinct epoch from mysql.ndb_binlog_index) as logged_epochs; count(1) > 1 1 Any slave positioning warnings? Should be none lower_warn_count 0 lower_err_count 0 repeat_err_count 0 skipped_err_count 0 Now stop and manually replay old binlog. stop slave; change master to master_log_pos=4; start slave; Any slave positioning warnings? Should be one lower_warn_count 1 lower_err_count 0 repeat_err_count 0 skipped_err_count 0 Repeat stop slave; change master to master_log_pos=4; start slave; Any slave positioning warnings? Should be two lower_warn_count 2 lower_err_count 0 repeat_err_count 0 skipped_err_count 0 Now try re-positioning after RESET SLAVE STOP SLAVE; RESET SLAVE; include/rpl_start_slaves.inc Any slave positioning warnings? Should be two, e.g. no extras after the RESET SLAVE This avoids warnings when slave context has been explicitly reset lower_warn_count 2 lower_err_count 0 repeat_err_count 0 skipped_err_count 0 Now get unexpected epoch back-step using fault injection on the Master. call mtr.add_suppression("NDB Binlog injector cycling gcis .*"); set @old_debug = @@global.debug; set global debug=""; set global debug="+d,ndb_binlog_injector_cycle_gcis"; show variables like 'debug'; Variable_name Value debug d,ndb_binlog_injector_cycle_gcis Let's make some epochs insert into test.t1 values (6 + 6, repeat('E', 1000)); insert into test.t1 values (5 + 6, repeat('E', 1000)); insert into test.t1 values (4 + 6, repeat('E', 1000)); insert into test.t1 values (3 + 6, repeat('E', 1000)); insert into test.t1 values (2 + 6, repeat('E', 1000)); insert into test.t1 values (1 + 6, repeat('E', 1000)); call mtr.add_suppression("NDB Slave : SQL thread stopped as applying epoch .*"); call mtr.add_suppression("Slave SQL for channel '': Could not execute .* HA_ERR_ROWS_EVENT_APPLY; .*"); call mtr.add_suppression("Slave: Got error 173 .*"); Check that slave stopped with an error include/wait_for_slave_sql_error.inc [errno=1296] Let's look at the warnings and errors now... lower_warn_count 2 lower_err_count 1 repeat_err_count 0 skipped_err_count 0 Now check that we can manually restart the slave set global debug = @old_debug; reset master; stop slave; change master to master_log_pos=4; start slave; insert into test.t1 values (13, repeat('A', 1000)); Check slave warnings now, should be no extras e.g. 2 warnings, 1 error lower_warn_count 2 lower_err_count 1 repeat_err_count 0 skipped_err_count 0 delete from test.t1; Now get unexpected epoch repeat using fault-injection on the master call mtr.add_suppression("NDB Binlog injector repeating gcis .*"); set @old_debug = @@global.debug; set global debug=""; set global debug="+d,ndb_binlog_injector_repeat_gcis"; show variables like 'debug'; Variable_name Value debug d,ndb_binlog_injector_repeat_gcis Let's make some epochs insert into test.t1 values (6, repeat('E', 1000)); insert into test.t1 values (5, repeat('E', 1000)); insert into test.t1 values (4, repeat('E', 1000)); insert into test.t1 values (3, repeat('E', 1000)); insert into test.t1 values (2, repeat('E', 1000)); insert into test.t1 values (1, repeat('E', 1000)); call mtr.add_suppression("NDB Slave : SQL thread stopped as attempted to reapply already committed epoch .*"); call mtr.add_suppression("Slave SQL for channel '': Could not execute .* HA_ERR_ROWS_EVENT_APPLY; .*"); call mtr.add_suppression("Slave: Got error 173 .*"); Check that slave stopped with an error include/wait_for_slave_sql_error.inc [errno=1296] Let's look at the warnings and errors now... Should be increase in repeat error count. lower_warn_count 2 lower_err_count 1 repeat_err_count 1 skipped_err_count 0 Now check that we can manually restart the slave set global debug = @old_debug; reset master; stop slave; change master to master_log_pos=4; start slave; insert into test.t1 values (13, repeat('A', 1000)); Check slave warnings now, should be no extras lower_warn_count 3 lower_err_count 1 repeat_err_count 1 skipped_err_count 0 delete from test.t1; Now get skipped epoch using fault injection on the slave set @old_debug = @@global.debug; set global debug=""; set global debug="+d,ndb_slave_fail_marking_epoch_committed"; show variables like 'debug'; Variable_name Value debug d,ndb_slave_fail_marking_epoch_committed Let's make some epochs insert into test.t1 values (6, repeat('E', 1000)); insert into test.t1 values (5, repeat('E', 1000)); insert into test.t1 values (4, repeat('E', 1000)); insert into test.t1 values (3, repeat('E', 1000)); insert into test.t1 values (2, repeat('E', 1000)); insert into test.t1 values (1, repeat('E', 1000)); call mtr.add_suppression("NDB Slave : SQL thread stopped as attempting to apply new epoch .*"); call mtr.add_suppression("Slave SQL for channel '': Could not execute .* HA_ERR_ROWS_EVENT_APPLY; .*"); call mtr.add_suppression("Slave: Got error 173 .*"); Check that slave stopped with an error include/wait_for_slave_sql_error.inc [errno=1296] Let's look at the warnings and errors now... Should be increase in repeat error count. lower_warn_count 3 lower_err_count 1 repeat_err_count 1 skipped_err_count 1 Now check that we can manually restart the slave set global debug = @old_debug; reset master; stop slave; change master to master_log_pos=4; start slave; insert into test.t1 values (13, repeat('A', 1000)); Check slave warnings now, should be no extras lower_warn_count 3 lower_err_count 1 repeat_err_count 1 skipped_err_count 1 drop table test.server_error_log; drop table test.t1; include/rpl_end.inc