diff options
author | unknown <guilhem@mysql.com> | 2003-11-03 18:24:01 +0100 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2003-11-03 18:24:01 +0100 |
commit | 5ec3a67132eee6d57698ea61b3bbc547c6061d4f (patch) | |
tree | 5e133e767056007f691813c3c9717b8c3aefb6ce /mysql-test/t/rpl_reset_slave.test | |
parent | b920ab261e7aea61a7b8a5b950faafa1ce719d4c (diff) | |
download | mariadb-git-5ec3a67132eee6d57698ea61b3bbc547c6061d4f.tar.gz |
When we delete the slave's temp tables from memory, we reset
rli->save_temporary_tables and slave_open_temp_tables
(in old 4.0 you could make "SHOW STATUS LIKE 'slave_open_temp_tables'" grow
indefinitely by doing RESET SLAVE and replicating always the same CREATE
TEMPORARY TABLE).
It's critical to reset save_temporary_tables to 0 (otherwise you may later
read memory which has been freed) so this changeset should go into 4.1.
mysql-test/r/rpl_reset_slave.result:
result update
mysql-test/t/rpl_reset_slave.test:
test for RESET SLAVE and creating twice the same temp table in the slave.
sql/slave.cc:
when we delete the slave's temp tables (when slave server shuts down and when
RESET SLAVE), we reset 2 variables: rli->save_temporary_tables & slave_open_temp_tables.
Diffstat (limited to 'mysql-test/t/rpl_reset_slave.test')
-rw-r--r-- | mysql-test/t/rpl_reset_slave.test | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/mysql-test/t/rpl_reset_slave.test b/mysql-test/t/rpl_reset_slave.test index 9c58ac0c787..083492c3fc0 100644 --- a/mysql-test/t/rpl_reset_slave.test +++ b/mysql-test/t/rpl_reset_slave.test @@ -2,6 +2,8 @@ # --master-* options from mysqld, as this is what is going to be used next time # slave threads will be started). In bug 985, it displayed old values (of before # RESET SLAVE). +# See if slave crashes when doing a CREATE TEMPORARY TABLE twice, separated by +# RESET SLAVE. source include/master-slave.inc; connection master; @@ -24,3 +26,19 @@ start slave; sync_with_master; --replace_result $MASTER_MYPORT MASTER_PORT show slave status; + +# test of crash with temp tables & RESET SLAVE +# (test to see if RESET SLAVE clears temp tables in memory and disk) +stop slave; +reset slave; +start slave; +connection master; +create temporary table t1 (a int); +save_master_pos; +connection slave; +sync_with_master; +stop slave; +reset slave; +start slave; +sync_with_master; +show status like 'slave_open_temp_tables'; |