#At file:///work/bzr/mysql-5.1-rpl/
2668 Horst Hunger 2008-10-10
Fix for bug#37763: Inserted the results of both reviews.
removed:
mysql-test/t/rpl_init_slave_func-slave.opt
modified:
mysql-test/r/rpl_init_slave_func.result
mysql-test/t/disabled.def
mysql-test/t/rpl_init_slave_func.test
=== modified file 'mysql-test/r/rpl_init_slave_func.result'
--- a/mysql-test/r/rpl_init_slave_func.result 2008-04-10 13:14:28 +0000
+++ b/mysql-test/r/rpl_init_slave_func.result 2008-10-10 05:40:04 +0000
@@ -4,44 +4,43 @@ reset master;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
-'#--------------------FN_DYNVARS_037_01-------------------------#'
-SET @@global.init_slave = "SET @a = 10";
-'connect (con1,localhost,root,,)'
-'connection con1'
-SELECT @@global.init_slave;
-@@global.init_slave
-SET @a = 10
-'connection master'
-'#--------------------FN_DYNVARS_037_02-------------------------#'
-'check if value in slave opt file is executed'
-'connection slave'
-show variables like 'init_slave';
-Variable_name Value
-init_slave set global max_connections=500
-show variables like 'max_connections';
-Variable_name Value
-max_connections 500
-reset master;
-'check if value in slave opt file doesnt apply to master'
-'connection master'
-show variables like 'init_slave';
-Variable_name Value
-init_slave SET @a = 10
-show variables like 'max_connections';
-Variable_name Value
-max_connections 151
-'connection slave'
-'try creating a temporary variable in init_slave'
+connection slave
+SET @start_max_connections= @@global.max_connections;
+SET @start_init_slave= @@global.init_slave;
+SET @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
+DROP TABLE IF EXISTS t1;
+CREATE TEMPORARY TABLE t1 AS SELECT @@global.init_slave AS my_column;
+DESCRIBE t1;
+Field Type Null Key Default Extra
+my_column varchar(59) NO
+DROP TABLE t1;
+SELECT @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
+@@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1'
+1
+Expect 1
+SELECT @@global.max_connections = @start_max_connections;
+@@global.max_connections = @start_max_connections
+1
+Expect 1
+STOP SLAVE;
+RESET MASTER;
+RESET SLAVE;
+START SLAVE;
+SELECT @@global.max_connections = @start_max_connections + 1;
+@@global.max_connections = @start_max_connections + 1
+1
+Expect 1
SET @@global.init_slave = "SET @a=5";
-stop slave;
-reset slave;
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
-start slave;
+STOP SLAVE;
+RESET MASTER;
+RESET SLAVE;
+START SLAVE;
SHOW VARIABLES LIKE 'init_slave';
Variable_name Value
init_slave SET @a=5
SELECT @a;
@a
NULL
-'Bug#35365 SET statement in init_slave not execute if slave is restarted'
-set global max_connections= default;
+Expect NULL
+SET @@global.max_connections= @start_max_connections;
+SET @@global.init_slave= @start_init_slave;
=== modified file 'mysql-test/t/disabled.def'
--- a/mysql-test/t/disabled.def 2008-09-10 10:50:39 +0000
+++ b/mysql-test/t/disabled.def 2008-10-10 05:40:04 +0000
@@ -18,7 +18,7 @@ delayed_insert_limit_func :
event_scheduler_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
interactive_timeout_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
query_cache_wlock_invalidate_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
-rpl_init_slave_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
+#rpl_init_slave_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
rpl_max_binlog_size_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
slow_query_log_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
sql_low_priority_updates_func : BUG#37962 2008-07-08 sven *_func tests containing sleeps/race conditions
=== removed file 'mysql-test/t/rpl_init_slave_func-slave.opt'
--- a/mysql-test/t/rpl_init_slave_func-slave.opt 2008-04-10 13:14:28 +0000
+++ b/mysql-test/t/rpl_init_slave_func-slave.opt 1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
---init-slave="set global max_connections=500"
=== modified file 'mysql-test/t/rpl_init_slave_func.test'
--- a/mysql-test/t/rpl_init_slave_func.test 2008-07-10 16:09:39 +0000
+++ b/mysql-test/t/rpl_init_slave_func.test 2008-10-10 05:40:04 +0000
@@ -10,85 +10,84 @@
# #
# Creation Date: 2008-03-08 #
# Author: Rizwan #
+# Modified: HHunger 2008-09-29 Fixed the bug by inserting the usual wait and #
+# SQL-Satements to control master and slave, #
+# deleted the sleep and made improvements like: #
+# - Replaced the opt file by dynamic variables, #
+# - Made the tests independant of the initial #
+# values of the global variables, #
+# - Reduced the test to the needed test case to #
+# save run time, #
+# - Beautification. #
# #
# Description: Test Cases of Dynamic System Variable init_slave #
# that checks the behavior of this variable #
# #
-# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
-# server-system-variables.html #
+# Reference: #
+# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
# #
###############################################################################
source include/master-slave.inc;
-
---echo '#--------------------FN_DYNVARS_037_01-------------------------#'
-##################################################################
-# Check if setting init_slave is changed in every new connection #
-##################################################################
-
-SET @@global.init_slave = "SET @a = 10";
-
---echo 'connect (con1,localhost,root,,)'
-connect (con1,localhost,root,,);
---echo 'connection con1'
-connection con1;
-SELECT @@global.init_slave;
-disconnect con1;
---echo 'connection master'
-connection master;
-
---echo '#--------------------FN_DYNVARS_037_02-------------------------#'
-####################################################
-# Begin the functionality Testing of init_slave #
-####################################################
-
-#====================================================
---echo 'check if value in slave opt file is executed'
-#====================================================
-save_master_pos;
---echo 'connection slave'
-connection slave;
-sleep 1;
-show variables like 'init_slave';
-show variables like 'max_connections';
-sync_with_master;
-reset master;
-
-#===============================================================
---echo 'check if value in slave opt file doesnt apply to master'
-#===============================================================
-
---echo 'connection master'
-connection master;
-show variables like 'init_slave';
-show variables like 'max_connections';
-save_master_pos;
---echo 'connection slave'
+--echo connection slave
connection slave;
-sync_with_master;
+#
+# save the current values
-#=======================================================
---echo 'try creating a temporary variable in init_slave'
-#=======================================================
+SET @start_max_connections= @@global.max_connections;
+SET @start_init_slave= @@global.init_slave;
-SET @@global.init_slave = "SET @a=5";
+# setting of a global value with an effect on the next start of the slave server
+# check that @@global.init_slave could be set
+let $my_init_slave=
+ 'SET @@global.max_connections = @@global.max_connections + 1';
+eval SET @@global.init_slave = $my_init_slave;
-source include/stop_slave.inc;
-reset slave;
-# Clean up old test tables
+# show the data type of the variable
--disable_warnings
-drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+DROP TABLE IF EXISTS t1;
+CREATE TEMPORARY TABLE t1 AS SELECT @@global.init_slave AS my_column;
--enable_warnings
-start slave;
-
+DESCRIBE t1;
+DROP TABLE t1;
+#
+# check that the new setting of @@global.init_slave becomes immediate visible
+eval SELECT @@global.init_slave = $my_init_slave;
+--echo Expect 1
+# check that the action in init_slave does not happen immediate
+SELECT @@global.max_connections = @start_max_connections;
+--echo Expect 1
+#
+# reset of the server
+STOP SLAVE;
+--wait_for_slave_to_stop
+RESET MASTER;
+RESET SLAVE;
+START SLAVE;
+source include/wait_for_slave_to_start.inc;
+#
+# check that the action in init_slave was executed and had the intended effect
+SELECT @@global.max_connections = @start_max_connections + 1;
+--echo Expect 1
+#
+# Setting a variable(which is local to a session) and must not be visible
+SET @@global.init_slave = "SET @a=5";
+#
+STOP SLAVE;
+--wait_for_slave_to_stop
+RESET MASTER;
+RESET SLAVE;
+START SLAVE;
+source include/wait_for_slave_to_start.inc;
+#
SHOW VARIABLES LIKE 'init_slave';
+# expect NULL
SELECT @a;
-
---echo 'Bug#35365 SET statement in init_slave not execute if slave is restarted'
-
-# Restore value
-set global max_connections= default;
-
+--echo Expect NULL
+#
+# Clean up
+SET @@global.max_connections= @start_max_connections;
+SET @@global.init_slave= @start_init_slave;
##################################################
# End of functionality Testing for init_slave #
##################################################
| Thread |
|---|
| • bzr commit into mysql-5.1 branch (horst:2668) Bug#37763 | Horst Hunger | 10 Oct |