mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
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.
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user