summaryrefslogtreecommitdiff
path: root/mysql-test/suite/rpl/include/rpl_row_001.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/rpl/include/rpl_row_001.test')
-rw-r--r--mysql-test/suite/rpl/include/rpl_row_001.test96
1 files changed, 96 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/include/rpl_row_001.test b/mysql-test/suite/rpl/include/rpl_row_001.test
new file mode 100644
index 00000000000..4df2d793244
--- /dev/null
+++ b/mysql-test/suite/rpl/include/rpl_row_001.test
@@ -0,0 +1,96 @@
+let $LOAD_FILE= $MYSQLTEST_VARDIR/std_data/words.dat;
+CREATE TABLE t1 (word CHAR(20) NOT NULL);
+--replace_result $LOAD_FILE LOAD_FILE
+eval LOAD DATA INFILE '$LOAD_FILE' INTO TABLE t1;
+--replace_result $LOAD_FILE LOAD_FILE
+eval LOAD DATA INFILE '$LOAD_FILE' INTO TABLE t1;
+SELECT * FROM t1 ORDER BY word LIMIT 10;
+
+#
+# Save password row for root
+#
+
+create temporary table tmp select * from mysql.user where host="localhost" and user="root";
+
+#
+# Test slave with wrong password
+#
+
+save_master_pos;
+connection slave;
+sync_with_master;
+STOP SLAVE;
+connection master;
+UPDATE mysql.user SET password=password('foo') WHERE host='localhost' AND user='root';
+connection slave;
+START SLAVE;
+connection master;
+#
+# Give slave time to do at last one failed connect retry
+# This one must be short so that the slave will not stop retrying
+real_sleep 2;
+UPDATE mysql.user SET password=password('') WHERE host='localhost' AND user='root';
+# Give slave time to connect (will retry every second)
+
+sleep 2;
+
+CREATE TABLE t3(n INT);
+INSERT INTO t3 VALUES(1),(2);
+sync_slave_with_master;
+SELECT * FROM t3 ORDER BY n;
+SELECT SUM(LENGTH(word)) FROM t1;
+connection master;
+DROP TABLE t1,t3;
+save_master_pos;
+connection slave;
+sync_with_master;
+
+# Test if the slave SQL thread can be more than 16K behind the slave
+# I/O thread (> IO_SIZE)
+
+connection master;
+# we'll use table-level locking to delay slave SQL thread
+eval CREATE TABLE t1 (n INT) ENGINE=$engine_type;
+sync_slave_with_master;
+connection master;
+RESET MASTER;
+connection slave;
+STOP SLAVE;
+RESET SLAVE;
+
+connection master;
+let $1=5000;
+# Generate 16K of relay log
+disable_query_log;
+while ($1)
+{
+ eval INSERT INTO t1 VALUES($1);
+ dec $1;
+}
+enable_query_log;
+SELECT COUNT(*) FROM t1;
+save_master_pos;
+
+# Try to cause a large relay log lag on the slave by locking t1
+connection slave;
+LOCK TABLES t1 READ;
+START SLAVE;
+UNLOCK TABLES;
+sync_with_master;
+SELECT COUNT(*) FROM t1;
+
+connection master;
+DROP TABLE t1;
+CREATE TABLE t1 (n INT);
+INSERT INTO t1 VALUES(3456);
+sync_slave_with_master;
+SELECT n FROM t1;
+
+connection master;
+DROP TABLE t1;
+
+# resttore old passwords
+replace into mysql.user select * from tmp;
+drop temporary table tmp;
+
+sync_slave_with_master;