Browse Source
Bug#31552 Replication breaks when deleting rows from out-of-sync table
Bug#31552 Replication breaks when deleting rows from out-of-sync table
without PK Bug#31609 Not all RBR slave errors reported as errors bug#32468 delete rows event on a table with foreign key constraint fails The first two bugs comprise idempotency issues. First, there was no error code reported under conditions of the bug description although the slave sql thread halted. Second, executions were different with and without presence of prim key in the table. Third, there was no way to instruct the slave whether to ignore an error and skip to the following event or to halt. Fourth, there are handler errors which might happen due to idempotent applying of binlog but those were not listed among the "idempotent" error list. All the named issues are addressed. Wrt to the 3rd, there is the new global system variable, changeble at run time, which controls the slave sql thread behaviour. The new variable allows further extensions to mimic the sql_mode session/global variable. To address the 4th, the new bug#32468 had to be fixed as it was staying in the way.pull/73/head
32 changed files with 1007 additions and 99 deletions
-
16include/my_bitmap.h
-
31mysql-test/extra/rpl_tests/rpl_foreign_key.test
-
14mysql-test/extra/rpl_tests/rpl_row_basic.test
-
7mysql-test/extra/rpl_tests/rpl_row_tabledefs.test
-
35mysql-test/r/bdb_notembedded.result
-
13mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result
-
155mysql-test/suite/rpl/r/rpl_idempotency.result
-
2mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result
-
4mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
-
4mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
-
2mysql-test/suite/rpl/r/rpl_row_mystery22.result
-
6mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result
-
6mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result
-
2mysql-test/suite/rpl/r/rpl_temporary_errors.result
-
2mysql-test/suite/rpl/t/rpl_idempotency-master.opt
-
2mysql-test/suite/rpl/t/rpl_idempotency-slave.opt
-
332mysql-test/suite/rpl/t/rpl_idempotency.test
-
5mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test
-
7mysql-test/suite/rpl/t/rpl_row_mystery22.test
-
4mysql-test/suite/rpl/t/rpl_temporary_errors.test
-
1mysql-test/suite/rpl_ndb/r/rpl_ndb_dd_advance.result
-
4mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result
-
38mysql-test/t/bdb_notembedded.test
-
239sql/log_event.cc
-
6sql/log_event.h
-
1sql/mysql_priv.h
-
19sql/mysqld.cc
-
5sql/rpl_rli.cc
-
99sql/set_var.cc
-
40sql/set_var.h
-
2sql/share/errmsg.txt
-
3sql/sql_class.h
@ -0,0 +1,35 @@ |
|||
set autocommit=1; |
|||
reset master; |
|||
create table bug16206 (a int); |
|||
insert into bug16206 values(1); |
|||
start transaction; |
|||
insert into bug16206 values(2); |
|||
commit; |
|||
show binlog events; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4 |
|||
f n Query 1 n use `test`; create table bug16206 (a int) |
|||
f n Query 1 n use `test`; insert into bug16206 values(1) |
|||
f n Query 1 n use `test`; insert into bug16206 values(2) |
|||
drop table bug16206; |
|||
reset master; |
|||
create table bug16206 (a int) engine= bdb; |
|||
insert into bug16206 values(0); |
|||
insert into bug16206 values(1); |
|||
start transaction; |
|||
insert into bug16206 values(2); |
|||
commit; |
|||
insert into bug16206 values(3); |
|||
show binlog events; |
|||
Log_name Pos Event_type Server_id End_log_pos Info |
|||
f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4 |
|||
f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb |
|||
f n Query 1 n use `test`; insert into bug16206 values(0) |
|||
f n Query 1 n use `test`; insert into bug16206 values(1) |
|||
f n Query 1 n use `test`; BEGIN |
|||
f n Query 1 n use `test`; insert into bug16206 values(2) |
|||
f n Query 1 n use `test`; COMMIT |
|||
f n Query 1 n use `test`; insert into bug16206 values(3) |
|||
drop table bug16206; |
|||
set autocommit=0; |
|||
End of 5.0 tests |
|||
@ -0,0 +1,2 @@ |
|||
--innodb |
|||
|
|||
@ -0,0 +1,2 @@ |
|||
--slave-exec-mode=IDEMPOTENT --innodb |
|||
|
|||
@ -0,0 +1,38 @@ |
|||
-- source include/not_embedded.inc |
|||
-- source include/have_bdb.inc |
|||
|
|||
# |
|||
# Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode |
|||
# |
|||
set autocommit=1; |
|||
|
|||
let $VERSION=`select version()`; |
|||
|
|||
reset master; |
|||
create table bug16206 (a int); |
|||
insert into bug16206 values(1); |
|||
start transaction; |
|||
insert into bug16206 values(2); |
|||
commit; |
|||
--replace_result $VERSION VERSION |
|||
--replace_column 1 f 2 n 5 n |
|||
show binlog events; |
|||
drop table bug16206; |
|||
|
|||
reset master; |
|||
create table bug16206 (a int) engine= bdb; |
|||
insert into bug16206 values(0); |
|||
insert into bug16206 values(1); |
|||
start transaction; |
|||
insert into bug16206 values(2); |
|||
commit; |
|||
insert into bug16206 values(3); |
|||
--replace_result $VERSION VERSION |
|||
--replace_column 1 f 2 n 5 n |
|||
show binlog events; |
|||
drop table bug16206; |
|||
|
|||
set autocommit=0; |
|||
|
|||
|
|||
--echo End of 5.0 tests |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue