diff options
Diffstat (limited to 'mysql-test/suite/rpl/include/rpl_stop_slave.test')
-rw-r--r-- | mysql-test/suite/rpl/include/rpl_stop_slave.test | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/mysql-test/suite/rpl/include/rpl_stop_slave.test b/mysql-test/suite/rpl/include/rpl_stop_slave.test new file mode 100644 index 00000000..12f99ed1 --- /dev/null +++ b/mysql-test/suite/rpl/include/rpl_stop_slave.test @@ -0,0 +1,56 @@ +# +# Auxiliary file which is used to test BUG#56118 +# +# Slave should apply all statements in the transaction before stop if any +# temporary table is created or dropped. +# +# USEAGE: +# --let $tmp_table_stm= a SQL statement +# --source suite/rpl/include/rpl_stop_slave.test +# + +if (!$tmp_table_stm) +{ + --echo \$tmp_table_stm is NULL + --die $tmp_table_stm is NULL +} + +connection master; +BEGIN; +DELETE FROM t1; +eval $tmp_table_stm; +INSERT INTO t1 VALUES (1); +DROP TEMPORARY TABLE tt1; +COMMIT; + +connection slave; + +# To check if slave SQL thread is applying INSERT statement +let $show_statement= SHOW PROCESSLIST; +let $field= Info; +let $condition= LIKE 'INSERT%'; +source include/wait_show_condition.inc; + +send STOP SLAVE SQL_THREAD; + +connection slave1; +--echo # To resume slave SQL thread +SET DEBUG_SYNC= 'now SIGNAL signal.continue'; +SET DEBUG_SYNC= 'now WAIT_FOR signal.continued'; +SET DEBUG_SYNC= 'RESET'; + +connection slave; +reap; +source include/wait_for_slave_sql_to_stop.inc; + +--echo # Slave should stop after the transaction has committed. +--echo # So t1 on master is same to t1 on slave. +--let $diff_tables= master:t1, slave:t1 +--source include/diff_tables.inc + +connection slave; +START SLAVE SQL_THREAD; +source include/wait_for_slave_sql_to_start.inc; + +connection master; +sync_slave_with_master; |