summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/rpl/t/rpl_flushlog_loop.test')
-rw-r--r--mysql-test/suite/rpl/t/rpl_flushlog_loop.test46
1 files changed, 46 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/t/rpl_flushlog_loop.test b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
new file mode 100644
index 00000000..d5d362ba
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_flushlog_loop.test
@@ -0,0 +1,46 @@
+# Testing if "flush logs" command bouncing resulting in logs created in a loop
+# in case of bi-directional replication
+--let $rpl_topology= 1->2->1
+--source include/rpl_init.inc
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR/
+show variables like 'relay_log%';
+
+#
+# Flush logs of slave
+#
+# Create full loop by following way:
+# 1. Insert into t1 on master (1st).
+# 2. Insert into t1 on slave (2nd) when the event (1st) for t1 replicated.
+# 3. Master waits until the event (2nd) for t1 will be replicated.
+
+CREATE TABLE t1 (a INT KEY) ENGINE= MyISAM;
+let $wait_binlog_event= CREATE TABLE t1;
+--source include/wait_for_binlog_event.inc
+sync_slave_with_master server_2;
+
+connection server_1;
+INSERT INTO t1 VALUE(1);
+FLUSH LOGS;
+sync_slave_with_master server_2;
+
+INSERT INTO t1 VALUE(2);
+let $slave_param_value= query_get_value(SHOW MASTER STATUS, Position, 1);
+sync_slave_with_master server_1;
+
+#
+# Check that the master server's slave threads are still running and show
+# Relay_Log_File
+#
+--source include/check_slave_is_running.inc
+--let status_items= Relay_Log_File
+--source include/show_slave_status.inc
+
+--disable_query_log
+connection server_1;
+DROP TABLE t1;
+sync_slave_with_master server_2;
+--enable_query_log
+
+--source include/rpl_end.inc