summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2003-11-03 18:25:47 +0100
committerunknown <guilhem@mysql.com>2003-11-03 18:25:47 +0100
commite1eedaa43d3f9abc642a3d25ae26e95a0c1aa1f7 (patch)
tree6ddfaecafb9b33ae366b2a3c9629d1be50e2698d
parent1f5d237260502b4210f222493ed40c5bd88ffc76 (diff)
parente88de4b9920a8283156cab764a3112f4dc15bf93 (diff)
downloadmariadb-git-e1eedaa43d3f9abc642a3d25ae26e95a0c1aa1f7.tar.gz
Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/mysql_src/mysql-4.0
-rw-r--r--mysql-test/r/rpl_reset_slave.result10
-rw-r--r--mysql-test/t/rpl_reset_slave.test18
-rw-r--r--sql/slave.cc2
3 files changed, 30 insertions, 0 deletions
diff --git a/mysql-test/r/rpl_reset_slave.result b/mysql-test/r/rpl_reset_slave.result
index c1bc1e8e483..fb931064720 100644
--- a/mysql-test/r/rpl_reset_slave.result
+++ b/mysql-test/r/rpl_reset_slave.result
@@ -20,3 +20,13 @@ start slave;
show slave status;
Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
127.0.0.1 root MASTER_PORT 1 master-bin.001 79 slave-relay-bin.002 120 master-bin.001 Yes Yes 0 0 79 120
+stop slave;
+reset slave;
+start slave;
+create temporary table t1 (a int);
+stop slave;
+reset slave;
+start slave;
+show status like 'slave_open_temp_tables';
+Variable_name Value
+Slave_open_temp_tables 1
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';
diff --git a/sql/slave.cc b/sql/slave.cc
index da63ca71951..6816d968007 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -337,6 +337,8 @@ void st_relay_log_info::close_temporary_tables()
*/
close_temporary(table, 0);
}
+ save_temporary_tables= 0;
+ slave_open_temp_tables= 0;
}
/*