summaryrefslogtreecommitdiff
path: root/mysql-test
diff options
context:
space:
mode:
authorSinisa@sinisa.nasamreza.org <>2004-03-11 22:27:17 +0200
committerSinisa@sinisa.nasamreza.org <>2004-03-11 22:27:17 +0200
commit37817f60cc3c0b47eaffe8f5e16f713c81354ef9 (patch)
treeae721a5579bd59c34fd338e2766c936f952314e9 /mysql-test
parenta86753b00e27409d1ec1223e20d872f1b8fa1848 (diff)
parent2bf78563f7a87cbeac8201f06983e5caab5b0cc6 (diff)
downloadmariadb-git-37817f60cc3c0b47eaffe8f5e16f713c81354ef9.tar.gz
Merge sinisa@bk-internal.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
Diffstat (limited to 'mysql-test')
-rw-r--r--mysql-test/r/rpl_error_ignored_table.result25
-rw-r--r--mysql-test/t/rpl_error_ignored_table-slave.opt2
-rw-r--r--mysql-test/t/rpl_error_ignored_table.test30
3 files changed, 56 insertions, 1 deletions
diff --git a/mysql-test/r/rpl_error_ignored_table.result b/mysql-test/r/rpl_error_ignored_table.result
index e1486220542..0e7ac72041c 100644
--- a/mysql-test/r/rpl_error_ignored_table.result
+++ b/mysql-test/r/rpl_error_ignored_table.result
@@ -13,3 +13,28 @@ Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Lo
show tables like 't1';
Tables_in_test (t1)
drop table t1;
+select get_lock('crash_lock%20C', 10);
+get_lock('crash_lock%20C', 10)
+1
+create table t2 (a int primary key);
+insert into t2 values(1);
+create table t3 (id int);
+insert into t3 values(connection_id());
+ update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
+select (@id := id) - id from t3;
+(@id := id) - id
+0
+kill @id;
+drop table t2,t3;
+Server shutdown in progress
+show binlog events from 79;
+Log_name Pos Event_type Server_id Orig_log_pos Info
+master-bin.001 79 Query 1 79 use `test`; create table t1 (a int primary key)
+master-bin.001 149 Query 1 149 use `test`; insert into t1 values (1),(1)
+master-bin.001 213 Query 1 213 use `test`; drop table t1
+master-bin.001 261 Query 1 261 use `test`; create table t2 (a int primary key)
+master-bin.001 331 Query 1 331 use `test`; insert into t2 values(1)
+master-bin.001 390 Query 1 390 use `test`; create table t3 (id int)
+master-bin.001 449 Query 1 449 use `test`; insert into t3 values(connection_id())
+master-bin.001 522 Query 1 522 use `test`; update t2 set a = a + 1 + get_lock('crash_lock%20C', 10)
+master-bin.001 613 Query 1 613 use `test`; drop table t2,t3
diff --git a/mysql-test/t/rpl_error_ignored_table-slave.opt b/mysql-test/t/rpl_error_ignored_table-slave.opt
index 0d3485f9e25..cb49119bfcb 100644
--- a/mysql-test/t/rpl_error_ignored_table-slave.opt
+++ b/mysql-test/t/rpl_error_ignored_table-slave.opt
@@ -1 +1 @@
---replicate-ignore-table=test.t1
+--replicate-ignore-table=test.t1 --replicate-ignore-table=test.t2 --replicate-ignore-table=test.t3
diff --git a/mysql-test/t/rpl_error_ignored_table.test b/mysql-test/t/rpl_error_ignored_table.test
index 686472433eb..c308d430f74 100644
--- a/mysql-test/t/rpl_error_ignored_table.test
+++ b/mysql-test/t/rpl_error_ignored_table.test
@@ -23,3 +23,33 @@ drop table t1;
save_master_pos;
connection slave;
sync_with_master;
+
+# Now test that even critical errors (connection killed)
+# are ignored if rules allow it.
+# The "kill" idea was copied from rpl000001.test.
+
+connection master1;
+select get_lock('crash_lock%20C', 10);
+
+connection master;
+create table t2 (a int primary key);
+insert into t2 values(1);
+create table t3 (id int);
+insert into t3 values(connection_id());
+send update t2 set a = a + 1 + get_lock('crash_lock%20C', 10);
+
+connection master1;
+sleep 2;
+select (@id := id) - id from t3;
+kill @id;
+drop table t2,t3;
+connection master;
+--error 1053;
+reap;
+connection master1;
+show binlog events from 79;
+save_master_pos;
+connection slave;
+# SQL slave thread should not have stopped (because table of the killed
+# query is in the ignore list).
+sync_with_master;