List:Commits« Previous MessageNext Message »
From:Horst Hunger Date:October 10 2008 5:40am
Subject:bzr commit into mysql-5.1 branch (horst:2668) Bug#37763
View as plain text  
#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#37763Horst Hunger10 Oct