Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
0737be6a
Commit
0737be6a
authored
Dec 17, 2008
by
Horst Hunger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Final fix for bug#36773: Moved patch in 5.1 from rpl to bug team tree.
parent
d566770b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
165 additions
and
99 deletions
+165
-99
mysql-test/include/wait_condition_sp.inc
mysql-test/include/wait_condition_sp.inc
+62
-0
mysql-test/r/rpl_init_slave_func.result
mysql-test/r/rpl_init_slave_func.result
+33
-34
mysql-test/t/rpl_init_slave_func-slave.opt
mysql-test/t/rpl_init_slave_func-slave.opt
+0
-1
mysql-test/t/rpl_init_slave_func.test
mysql-test/t/rpl_init_slave_func.test
+70
-64
No files found.
mysql-test/include/wait_condition_sp.inc
0 → 100644
View file @
0737be6a
# include/wait_condition.inc
#
# SUMMARY
#
# Waits until the passed statement returns true, or the operation
# times out.
#
# USAGE
#
# let $wait_condition=
# SELECT c = 3 FROM t;
# --source include/wait_condition.inc
#
# OR
#
# let $wait_timeout= 60; # Override default 30 seconds with 60.
# let $wait_condition=
# SELECT c = 3 FROM t;
# --source include/wait_condition.inc
# --echo Executed the test condition $wait_condition_reps times
#
# EXAMPLE
# events_bugs.test, events_time_zone.test
#
--
disable_query_log
let
$wait_counter
=
300
;
if
(
$wait_timeout
)
{
let
$wait_counter
=
`SELECT $wait_timeout * 10`
;
}
# Reset $wait_timeout so that its value won't be used on subsequent
# calls, and default will be used instead.
let
$wait_timeout
=
0
;
# Keep track of how many times the wait condition is tested
# This is used by some tests (e.g., main.status)
let
$wait_condition_reps
=
0
;
while
(
$wait_counter
)
{
let
$success
=
`$wait_condition`
;
inc
$wait_condition_reps
;
if
(
$success
)
{
let
$wait_counter
=
0
;
}
if
(
!
$success
)
{
real_sleep
0.1
;
dec
$wait_counter
;
}
}
if
(
!
$success
)
{
echo
Timeout
in
wait_condition
.
inc
for
$wait_condition
;
show
master
status
;
show
slave
status
;
}
--
enable_query_log
mysql-test/r/rpl_init_slave_func.result
View file @
0737be6a
...
@@ -4,44 +4,43 @@ reset master;
...
@@ -4,44 +4,43 @@ reset master;
reset slave;
reset slave;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
start slave;
start slave;
'#--------------------FN_DYNVARS_037_01-------------------------#'
connection slave
SET @@global.init_slave = "SET @a = 10";
SET @start_max_connections= @@global.max_connections;
'connect (con1,localhost,root,,)'
SET @start_init_slave= @@global.init_slave;
'connection con1'
SET @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
SELECT @@global.init_slave;
DROP TABLE IF EXISTS t1;
@@global.init_slave
CREATE TEMPORARY TABLE t1 AS SELECT @@global.init_slave AS my_column;
SET @a = 10
DESCRIBE t1;
'connection master'
Field Type Null Key Default Extra
'#--------------------FN_DYNVARS_037_02-------------------------#'
my_column longtext NO NULL
'check if value in slave opt file is executed'
DROP TABLE t1;
'connection slave'
SELECT @@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1';
show variables like 'init_slave';
@@global.init_slave = 'SET @@global.max_connections = @@global.max_connections + 1'
Variable_name Value
1
init_slave set global max_connections=500
Expect 1
show variables like 'max_connections';
SELECT @@global.max_connections= @start_max_connections;
Variable_name Value
@@global.max_connections= @start_max_connections
max_connections 500
1
reset master;
Expect 1
'check if value in slave opt file doesnt apply to master'
STOP SLAVE;
'connection master'
RESET MASTER;
show variables like 'init_slave';
RESET SLAVE;
Variable_name Value
START SLAVE;
init_slave SET @a = 10
SELECT @@global.max_connections = @start_max_connections + 1;
show variables like 'max_connections';
@@global.max_connections = @start_max_connections + 1
Variable_name Value
1
max_connections 151
Expect 1
'connection slave'
'try creating a temporary variable in init_slave'
SET @@global.init_slave = "SET @a=5";
SET @@global.init_slave = "SET @a=5";
stop slave
;
STOP SLAVE
;
reset slave
;
RESET MASTER
;
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9
;
RESET SLAVE
;
start slave
;
START SLAVE
;
SHOW VARIABLES LIKE 'init_slave';
SHOW VARIABLES LIKE 'init_slave';
Variable_name Value
Variable_name Value
init_slave SET @a=5
init_slave SET @a=5
SELECT @a;
SELECT @a;
@a
@a
NULL
NULL
'Bug#35365 SET statement in init_slave not execute if slave is restarted'
Expect NULL
set global max_connections= default;
SET @@global.max_connections= @start_max_connections;
SET @@global.init_slave= @start_init_slave;
mysql-test/t/rpl_init_slave_func-slave.opt
deleted
100644 → 0
View file @
d566770b
--init-slave="set global max_connections=500"
mysql-test/t/rpl_init_slave_func.test
View file @
0737be6a
...
@@ -10,86 +10,92 @@
...
@@ -10,86 +10,92 @@
# #
# #
# Creation Date: 2008-03-08 #
# Creation Date: 2008-03-08 #
# Author: Rizwan #
# 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 #
# Description: Test Cases of Dynamic System Variable init_slave #
# that checks the behavior of this variable #
# that checks the behavior of this variable #
# #
# #
# Reference:
http://dev.mysql.com/doc/refman/5.1/en/
#
# Reference:
#
#
server-system-variables.html
#
#
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html
#
# #
# #
###############################################################################
###############################################################################
source
include
/
master
-
slave
.
inc
;
source
include
/
master
-
slave
.
inc
;
--
echo
connection
slave
--
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
;
connection
slave
;
sleep
1
;
#
show
variables
like
'init_slave'
;
# save the current values
show
variables
like
'max_connections'
;
sync_with_master
;
reset
master
;
#===============================================================
SET
@
start_max_connections
=
@@
global
.
max_connections
;
--
echo
'check if value in slave opt file doesnt apply to master'
SET
@
start_init_slave
=
@@
global
.
init_slave
;
#===============================================================
--
echo
'connection master'
# setting of a global value with an effect on the next start of the slave server
connection
master
;
# check that @@global.init_slave could be set
show
variables
like
'init_slave'
;
let
$my_init_slave
=
show
variables
like
'max_connections'
;
'SET @@global.max_connections = @@global.max_connections + 1'
;
save_master_pos
;
eval
SET
@@
global
.
init_slave
=
$my_init_slave
;
--
echo
'connection slave'
connection
slave
;
sync_with_master
;
#=======================================================
--
echo
'try creating a temporary variable in init_slave'
#=======================================================
SET
@@
global
.
init_slave
=
"SET @a=5"
;
stop
slave
;
# show the data type of the variable
--
wait_for_slave_to_stop
reset
slave
;
# Clean up old test tables
--
disable_warnings
--
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
--
enable_warnings
start
slave
;
DESCRIBE
t1
;
DROP
TABLE
t1
;
#
# check that the new setting of @@global.init_slave becomes immediately visible
eval
SELECT
@@
global
.
init_slave
=
$my_init_slave
;
--
echo
Expect
1
# wait for the slave threads have set the global variable.
let
$wait_timeout
=
90
;
let
$wait_condition
=
SELECT
@@
global
.
max_connections
=
@
start_max_connections
;
--
source
include
/
wait_condition_sp
.
inc
# check that the action in init_slave does not happen immediately
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
;
#
# wait for the slave threads have set the global variable.
let
$wait_timeout
=
90
;
let
$wait_condition
=
SELECT
@@
global
.
max_connections
=
@
start_max_connections
+
1
;
--
source
include
/
wait_condition_sp
.
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'
;
SHOW
VARIABLES
LIKE
'init_slave'
;
# expect NULL
SELECT
@
a
;
SELECT
@
a
;
--
echo
Expect
NULL
--
echo
'Bug#35365 SET statement in init_slave not execute if slave is restarted'
#
# Clean up
# Restore value
SET
@@
global
.
max_connections
=
@
start_max_connections
;
set
global
max_connections
=
default
;
SET
@@
global
.
init_slave
=
@
start_init_slave
;
##################################################
##################################################
# End of functionality Testing for init_slave #
# End of functionality Testing for init_slave #
##################################################
##################################################
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment