mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 21:12:26 +01:00
Fix for bug#36873 containing the review results.
This commit is contained in:
parent
a6fb36d46e
commit
e886b712f5
2 changed files with 78 additions and 82 deletions
|
@ -1,30 +1,32 @@
|
|||
drop table if exists t1;
|
||||
## Creating new table t1 ##
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
PRIMARY KEY (id),
|
||||
name VARCHAR(30)
|
||||
);
|
||||
SET @start_value= @@global.wait_timeout;
|
||||
'#--------------------FN_DYNVARS_186_01-------------------------#'
|
||||
## Creating new connection test_con1 ##
|
||||
## Setting value of variable to 5 ##
|
||||
SET @@session.wait_timeout = 5;
|
||||
## Inserting record in table t1 ##
|
||||
INSERT into t1(name) values('Record_1');
|
||||
## Using sleep to check timeout ##
|
||||
'#--------------------FN_DYNVARS_186_02-------------------------#'
|
||||
## Setting value of variable ##
|
||||
SET @@global.wait_timeout = 5;
|
||||
## Creating new connection test_con2 ##
|
||||
INSERT into t1(name) values('Record_2');
|
||||
## Using sleep to check timeout ##
|
||||
SET @start_time= UNIX_TIMESTAMP();
|
||||
connect (test_con1, localhost, root,,);
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
SET @@session.wait_timeout = <session_value>;
|
||||
connect (test_con2, localhost, root,,);
|
||||
SET @@session.wait_timeout = <session_value> - 1;
|
||||
connection default;
|
||||
wait until connections ready
|
||||
SELECT info FROM information_schema.processlist;
|
||||
info
|
||||
SELECT info FROM information_schema.processlist
|
||||
'#--------------------FN_DYNVARS_186_03-------------------------#'
|
||||
## Setting value of variable to 1 ##
|
||||
SET @@global.wait_timeout = 1;
|
||||
## Creating new connection ##
|
||||
INSERT into t1(name) values('Record_3');
|
||||
## Using sleep to check timeout ##
|
||||
## We cannot test it further because the server stops due to wait_timeout ##
|
||||
SELECT * from t1;
|
||||
ERROR HY000: MySQL server has gone away
|
||||
SET @@global.wait_timeout= <global_value>;
|
||||
SELECT @@session.wait_timeout = @start_value AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
connect (test_con3, localhost, root,,);
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
Expect 1
|
||||
1
|
||||
connection default;
|
||||
SELECT info FROM information_schema.processlist;
|
||||
info
|
||||
SELECT info FROM information_schema.processlist
|
||||
SELECT UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;;
|
||||
UNIX_TIMESTAMP() - @start_time >= <global_value> + <session_value>;
|
||||
1
|
||||
SET @@global.wait_timeout= @start_value;
|
||||
|
|
|
@ -11,93 +11,87 @@
|
|||
# Creation Date: 2008-03-07 #
|
||||
# Author: Salman Rawala #
|
||||
# #
|
||||
# Modified: HHunger 2008-08-27 Simplified the test and replaced the sleeps. #
|
||||
# #
|
||||
# Description: Test Cases of Dynamic System Variable wait_timeout #
|
||||
# that checks the functionality of this variable #
|
||||
# #
|
||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
|
||||
# server-system-variables.html#option_mysqld_wait_timeouts #
|
||||
# Reference: #
|
||||
# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
|
||||
# #
|
||||
###############################################################################
|
||||
|
||||
--source include/not_embedded.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
##############################
|
||||
# Creating two new tables #
|
||||
##############################
|
||||
|
||||
--echo ## Creating new table t1 ##
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT NOT NULL auto_increment,
|
||||
PRIMARY KEY (id),
|
||||
name VARCHAR(30)
|
||||
);
|
||||
SET @start_value= @@global.wait_timeout;
|
||||
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_186_01-------------------------#'
|
||||
#######################################################################
|
||||
# Setting initial value of interactive_timeout greater than sleep and
|
||||
# verifying its behavior on session scope
|
||||
# 1. test of scope session
|
||||
#######################################################################
|
||||
|
||||
--echo ## Creating new connection test_con1 ##
|
||||
SET @start_time= UNIX_TIMESTAMP();
|
||||
--echo connect (test_con1, localhost, root,,);
|
||||
connect (test_con1, localhost, root,,);
|
||||
connection test_con1;
|
||||
|
||||
--echo ## Setting value of variable to 5 ##
|
||||
SET @@session.wait_timeout = 5;
|
||||
# If not explicitly changed, @@session.wait_timeout equals @@global.wait_timeout.
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
|
||||
--echo ## Inserting record in table t1 ##
|
||||
INSERT into t1(name) values('Record_1');
|
||||
# Find a small value <> @@global.wait_timeout.
|
||||
let $session_value =
|
||||
`SELECT IF(@@global.wait_timeout <> 2 OR @@global.wait_timeout IS NULL, 2, 3)`;
|
||||
--replace_result $session_value <session_value>
|
||||
eval SET @@session.wait_timeout = $session_value;
|
||||
|
||||
--echo ## Using sleep to check timeout ##
|
||||
sleep 4;
|
||||
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_186_02-------------------------#'
|
||||
#######################################################################
|
||||
# Setting initial value of interactive_timeout greater than sleep and
|
||||
# verifying its behavior on global scope
|
||||
#######################################################################
|
||||
|
||||
--echo ## Setting value of variable ##
|
||||
SET @@global.wait_timeout = 5;
|
||||
|
||||
--echo ## Creating new connection test_con2 ##
|
||||
--echo connect (test_con2, localhost, root,,);
|
||||
connect (test_con2, localhost, root,,);
|
||||
connection test_con2;
|
||||
|
||||
INSERT into t1(name) values('Record_2');
|
||||
|
||||
--echo ## Using sleep to check timeout ##
|
||||
sleep 4;
|
||||
|
||||
--replace_result $session_value <session_value>
|
||||
eval SET @@session.wait_timeout = $session_value - 1;
|
||||
|
||||
--echo connection default;
|
||||
connection default;
|
||||
|
||||
--echo wait until connections ready
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist;
|
||||
--source include/wait_condition.inc
|
||||
SELECT info FROM information_schema.processlist;
|
||||
|
||||
--echo '#--------------------FN_DYNVARS_186_03-------------------------#'
|
||||
#######################################################################
|
||||
# Setting initial value of interactive_timeout less than sleep and
|
||||
# verifying its behavior on global scope
|
||||
# 2. test of scope global
|
||||
#######################################################################
|
||||
|
||||
--echo ## Setting value of variable to 1 ##
|
||||
SET @@global.wait_timeout = 1;
|
||||
# Find a small value <> @@global.wait_timeout.
|
||||
let $global_value = $session_value + 1;
|
||||
--replace_result $global_value <global_value>
|
||||
eval SET @@global.wait_timeout= $global_value;
|
||||
|
||||
--echo ## Creating new connection ##
|
||||
# Changing the @@global.wait_timeout has no influence on the
|
||||
# @@session.wait_timeout of already established sessions.
|
||||
SELECT @@session.wait_timeout = @start_value AS 'Expect 1';
|
||||
|
||||
--echo connect (test_con3, localhost, root,,);
|
||||
connect (test_con3, localhost, root,,);
|
||||
connection test_con3;
|
||||
|
||||
INSERT into t1(name) values('Record_3');
|
||||
# If not explicitly changed, @@session.wait_timeout equals @@global.wait_timeout.
|
||||
SELECT @@session.wait_timeout = @@global.wait_timeout AS 'Expect 1';
|
||||
|
||||
--echo ## Using sleep to check timeout ##
|
||||
sleep 5;
|
||||
--echo connection default;
|
||||
connection default;
|
||||
# We can be sure that the connections test_con1 and test_con2 must be
|
||||
# established because both have already executed a SET @@session.wait_timeout.
|
||||
# This means they are or at least were visible within the processlist.
|
||||
# Therefore we can now simply wait till both disappear from the processlist.
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM information_schema.processlist;
|
||||
--source include/wait_condition.inc
|
||||
SELECT info FROM information_schema.processlist;
|
||||
|
||||
--echo ## We cannot test it further because the server stops due to wait_timeout ##
|
||||
--Error 2006
|
||||
SELECT * from t1;
|
||||
--replace_result $global_value <global_value> $session_value <session_value>;
|
||||
eval SELECT UNIX_TIMESTAMP() - @start_time >= $global_value + $session_value;
|
||||
SET @@global.wait_timeout= @start_value;
|
||||
|
||||
|
|
Loading…
Reference in a new issue