From 14cfb0acb83b3c9a4a1ae424f80a7bff1a8058b2 Mon Sep 17 00:00:00 2001 From: Alexander Barkov Date: Wed, 10 Dec 2014 12:00:25 +0400 Subject: [PATCH] MDEV-6409 CREATE VIEW replication problem if error occurs in mysql_register_view An additional debug test, made by Sriram Patil while working on "CREATE VIEW IF NOT EXISTS". --- mysql-test/suite/rpl/r/rpl_view_debug.result | 34 ++++++++++++++++++++ mysql-test/suite/rpl/t/rpl_view_debug.test | 34 ++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 mysql-test/suite/rpl/r/rpl_view_debug.result create mode 100644 mysql-test/suite/rpl/t/rpl_view_debug.test diff --git a/mysql-test/suite/rpl/r/rpl_view_debug.result b/mysql-test/suite/rpl/r/rpl_view_debug.result new file mode 100644 index 00000000000..e4d97741d9f --- /dev/null +++ b/mysql-test/suite/rpl/r/rpl_view_debug.result @@ -0,0 +1,34 @@ +include/master-slave.inc +[connection master] +# +# MDEV-6409 CREATE VIEW replication problem if error occurs in mysql_register_view +# +# Check the bug where if an error occurs in mysql_register_view the view +# is still replicated to the slave +# +create table t1 (a int); +insert into t1 values (1); +create view v1 as select a from t1; +insert into v1 values (2); +select * from v1 order by a; +a +1 +2 +show tables; +Tables_in_test +t1 +v1 +set @@debug_dbug="d,simulate_register_view_failure"; +CREATE VIEW v2 as SELECT * FROM t1; +ERROR HY000: Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space +show tables; +Tables_in_test +t1 +v1 +show tables; +Tables_in_test +t1 +v1 +DROP VIEW IF EXISTS v1; +DROP TABLE t1; +include/rpl_end.inc diff --git a/mysql-test/suite/rpl/t/rpl_view_debug.test b/mysql-test/suite/rpl/t/rpl_view_debug.test new file mode 100644 index 00000000000..a00b6733dea --- /dev/null +++ b/mysql-test/suite/rpl/t/rpl_view_debug.test @@ -0,0 +1,34 @@ +--source include/have_debug.inc +--source include/master-slave.inc + +--echo # +--echo # MDEV-6409 CREATE VIEW replication problem if error occurs in mysql_register_view +--echo # +--echo # Check the bug where if an error occurs in mysql_register_view the view +--echo # is still replicated to the slave +--echo # +connection master; +create table t1 (a int); +insert into t1 values (1); +create view v1 as select a from t1; +insert into v1 values (2); +select * from v1 order by a; +sync_slave_with_master; + +# view already has to be on slave +show tables; +connection master; +set @@debug_dbug="d,simulate_register_view_failure"; + +--error ER_OUT_OF_RESOURCES +CREATE VIEW v2 as SELECT * FROM t1; + +show tables; +sync_slave_with_master; +show tables; + +connection master; +DROP VIEW IF EXISTS v1; +DROP TABLE t1; + +--source include/rpl_end.inc