From ba7570b11099894bd6a80f4729da290c9c47b00c Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 22 Oct 2007 21:45:21 +0300 Subject: [PATCH] Bug #30594 rpl.rpl_skip_error is nondeterministic Non-determinism in the tests was due to results of SBR are different from those gained with row binlog format. Because tests effectively verify skipping only ER_DUP_ENTRY it is explicitly required to run the test on in mixed and stmt binlog format. ER_DUP_ENTRY is automatically ignored when happened in RBR because of implicit rule favoring reentrant reading from binlog rule which means that a Write_rows_log_event overwrites a slave's row if the one has the same primary key. If future we might have skipping error due to applying of row-based events. The comments added saying a new file would be needed for that: rpl_row_skip_error or smth. mysql-test/suite/rpl/r/rpl_skip_error.result: new results mysql-test/suite/rpl/t/rpl_skip_error-slave.opt: wrong error code that can not happen in the test removed. mysql-test/suite/rpl/t/rpl_skip_error.test: enforcing the test is to skip only errors due to SBR. The current test does not check anything for RBR as ignorable ER_DUP_ENTRY does make sense only for SBR. --- mysql-test/suite/rpl/r/rpl_skip_error.result | 3 +-- mysql-test/suite/rpl/t/rpl_skip_error-slave.opt | 2 +- mysql-test/suite/rpl/t/rpl_skip_error.test | 8 ++++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/mysql-test/suite/rpl/r/rpl_skip_error.result b/mysql-test/suite/rpl/r/rpl_skip_error.result index 525909387b3..ed4c4a6b3bb 100644 --- a/mysql-test/suite/rpl/r/rpl_skip_error.result +++ b/mysql-test/suite/rpl/r/rpl_skip_error.result @@ -29,8 +29,7 @@ select * from t1; a 1 2 -3 show slave status; Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error -# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 786 # # master-bin.000001 Yes Yes 0 0 786 # None 0 No # No 0 0 +# 127.0.0.1 root MASTER_PORT 1 master-bin.000001 851 # # master-bin.000001 Yes Yes 0 0 851 # None 0 No # No 0 0 drop table t1; diff --git a/mysql-test/suite/rpl/t/rpl_skip_error-slave.opt b/mysql-test/suite/rpl/t/rpl_skip_error-slave.opt index c84171976a1..a8f5deaa30b 100644 --- a/mysql-test/suite/rpl/t/rpl_skip_error-slave.opt +++ b/mysql-test/suite/rpl/t/rpl_skip_error-slave.opt @@ -1 +1 @@ ---slave-skip-error=1062,1582 +--slave-skip-error=1062 diff --git a/mysql-test/suite/rpl/t/rpl_skip_error.test b/mysql-test/suite/rpl/t/rpl_skip_error.test index b68b637b3b0..72d434d9c9b 100644 --- a/mysql-test/suite/rpl/t/rpl_skip_error.test +++ b/mysql-test/suite/rpl/t/rpl_skip_error.test @@ -3,6 +3,14 @@ ######################################### # Note that errors are ignored by opt file. source include/master-slave.inc; +source include/have_binlog_format_mixed_or_statement.inc; + +# +# Bug #30594 +# Skipping error due to applying Row-based repliation events +# should be checked with another test file +# consider names like rpl_row_skip_error +# create table t1 (n int not null primary key); save_master_pos;