diff options
-rw-r--r-- | mysql-test/r/rpl_skip_error.result | 19 | ||||
-rw-r--r-- | mysql-test/t/rpl_skip_error.test | 19 | ||||
-rw-r--r-- | sql/log_event.cc | 1 |
3 files changed, 39 insertions, 0 deletions
diff --git a/mysql-test/r/rpl_skip_error.result b/mysql-test/r/rpl_skip_error.result index adc61f8c2c8..4cd4e1e73f5 100644 --- a/mysql-test/r/rpl_skip_error.result +++ b/mysql-test/r/rpl_skip_error.result @@ -14,3 +14,22 @@ n 2 3 drop table t1; +create table t1(a int primary key); +insert into t1 values (1),(2); +delete from t1 where @@server_id=1; +set sql_mode=strict_trans_tables; +select @@server_id; +@@server_id +1 +insert into t1 values (1),(2),(3); +select @@server_id; +@@server_id +2 +select * from t1; +a +1 +2 +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 +Waiting for master to send event 127.0.0.1 root 9306 1 master-bin.000001 843 slave-relay-bin.000003 981 master-bin.000001 Yes Yes 0 0 843 981 None 0 No 0 +drop table t1; diff --git a/mysql-test/t/rpl_skip_error.test b/mysql-test/t/rpl_skip_error.test index f6fc73f58f2..1f476829bde 100644 --- a/mysql-test/t/rpl_skip_error.test +++ b/mysql-test/t/rpl_skip_error.test @@ -17,3 +17,22 @@ connection master; drop table t1; sync_with_master; # End of 4.1 tests + +# +# #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists +# +create table t1(a int primary key); +insert into t1 values (1),(2); +delete from t1 where @@server_id=1; +set sql_mode=strict_trans_tables; +select @@server_id; +insert into t1 values (1),(2),(3); +sync_slave_with_master; +connection slave; +select @@server_id; +select * from t1; +show slave status; +connection master; +drop table t1; +sync_with_master; +# End of 5.0 tests diff --git a/sql/log_event.cc b/sql/log_event.cc index 0f150eeaf2d..91628c0486c 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1968,6 +1968,7 @@ Default database: '%s'. Query: '%s'", { DBUG_PRINT("info",("error ignored")); clear_all_errors(thd, rli); + thd->killed= THD::NOT_KILLED; } /* Other cases: mostly we expected no error and get one. |