summaryrefslogtreecommitdiff
path: root/mysql-test/r
diff options
context:
space:
mode:
authorunknown <aelkin/elkin@dsl-hkigw8-feaef900-46.dhcp.inet.fi>2006-11-03 14:26:40 +0200
committerunknown <aelkin/elkin@dsl-hkigw8-feaef900-46.dhcp.inet.fi>2006-11-03 14:26:40 +0200
commit5a7bbcd5716f3859db52e0f8189fd8b85debf31d (patch)
treeeeb504b05faea844df55080a5cf916fda221ad1b /mysql-test/r
parentb7d43470becf7af9ed69073209cc9781488afe9a (diff)
downloadmariadb-git-5a7bbcd5716f3859db52e0f8189fd8b85debf31d.tar.gz
Bug#16228/Bug#20697 - related.
Bug#23831 deadlock not noticed RBR bug in that when replicated msta (multi-statement-trans-action) deadlocks with a local at write row event or gets timed-out, the event handler did not return the correct error code. Wrong error code stops slave sql thread instead of to proceed with rollback and replay. The correct code is typed in error log and stored for error handling rotine to conduct rollback and replay of the transaction. The handling for the rbr remains the same as for the sbr events. Particularly, timed-out transaction still is rolled back - look at the related bugs. mysql-test/extra/rpl_tests/rpl_deadlock.test: fixing deadlock stimulation, commented on potential race condition and left todo. mysql-test/r/rpl_deadlock_innodb.result: changed sql/log_event.cc: returning the correct errors for write row event type; storing DL, TO error codes to check at grand-caller in step with sbr.
Diffstat (limited to 'mysql-test/r')
-rw-r--r--mysql-test/r/rpl_deadlock_innodb.result21
1 files changed, 13 insertions, 8 deletions
diff --git a/mysql-test/r/rpl_deadlock_innodb.result b/mysql-test/r/rpl_deadlock_innodb.result
index a99d3d389bd..9a67391cd4d 100644
--- a/mysql-test/r/rpl_deadlock_innodb.result
+++ b/mysql-test/r/rpl_deadlock_innodb.result
@@ -28,21 +28,22 @@ Variable_name Value
slave_transaction_retries 2
stop slave;
begin;
-insert into t3 select * from t2 for update;
+insert into t2 values (0);
insert into t1 values(1);
commit;
begin;
select * from t1 for update;
a
start slave;
-insert into t2 values(201);
+select * from t2 for update /* dl */;
+a
commit;
select * from t1;
a
1
-select * from t2;
+select * from t2 /* must be 1 */;
a
-201
+0
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -83,7 +84,7 @@ change master to master_log_pos=544;
begin;
select * from t2 for update;
a
-201
+0
start slave;
select count(*) from t3 /* must be zero */;
count(*)
@@ -95,7 +96,8 @@ a
1
select * from t2;
a
-201
+0
+0
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1
@@ -137,7 +139,8 @@ change master to master_log_pos=544;
begin;
select * from t2 for update;
a
-201
+0
+0
start slave;
select count(*) from t3 /* must be zero */;
count(*)
@@ -150,7 +153,9 @@ a
1
select * from t2;
a
-201
+0
+0
+0
show slave status;
Slave_IO_State #
Master_Host 127.0.0.1