#At file:///work/bzr/mysql-5.1-39108/
2743 Horst Hunger 2009-01-23
Fix for bug#39108: Set global wait timeout within the test, not more via opt file.
Deleted the opt file. Replaced the sleeps by wait condition. Made some beautyfications.
Inserted review results.
removed:
mysql-test/t/wait_timeout-master.opt
modified:
mysql-test/r/wait_timeout.result
mysql-test/t/wait_timeout.test
=== modified file 'mysql-test/r/wait_timeout.result'
--- a/mysql-test/r/wait_timeout.result 2007-01-10 14:55:53 +0000
+++ b/mysql-test/r/wait_timeout.result 2009-01-23 17:19:09 +0000
@@ -1,20 +1,33 @@
-select 0;
-0
-0
-flush status;
-select 1;
+SET @@global.wait_timeout= 2;
+disconnect default;
+connection wait_con;
+connection default;
+--disable_reconnect;
+SELECT 1;
1
1
-select 2;
+connection wait_con;
+connection default;
+SELECT 2;
Got one of the listed errors
-select 3;
+--enable_reconnect;
+SELECT 3;
3
3
-select 1;
+disconnection default;
+connection wait_con;
+connection con1;
+--disable_reconnect;
+SELECT 1;
1
1
-select 2;
+connection wait_con;
+connection con1;
+SELECT 2;
Got one of the listed errors
-select 3;
+--enable_reconnect;
+SELECT 3;
3
3
+SET @@global.wait_timeout= <start_value>;
+disconnection con1;
=== removed file 'mysql-test/t/wait_timeout-master.opt'
--- a/mysql-test/t/wait_timeout-master.opt 2006-02-16 11:02:38 +0000
+++ b/mysql-test/t/wait_timeout-master.opt 1970-01-01 00:00:00 +0000
@@ -1 +0,0 @@
---wait-timeout=1
=== modified file 'mysql-test/t/wait_timeout.test'
--- a/mysql-test/t/wait_timeout.test 2007-02-23 11:13:55 +0000
+++ b/mysql-test/t/wait_timeout.test 2009-01-23 17:19:09 +0000
@@ -1,40 +1,51 @@
-# This tests not performed with embedded server
+# Last modification:
+# 2009-01-19 H.Hunger Fix Bug#39108 main.wait_timeout fails sporadically
+# - Increase wait timeout to 2 seconds
+# - Eliminated the corresponding opt file,
+# set global wait timeout within the test.
+# - Replaced sleeps by wait condition
+# - Minor improvements
+###############################################################################
+# These tests cannot run with the embedded server
-- source include/not_embedded.inc
-- source include/one_thread_per_connection.inc
#
-# Bug #8731: wait_timeout does not work on Mac OS X
+# Bug#8731: wait_timeout does not work on Mac OS X
#
+let $start_value= `SELECT @@global.wait_timeout`;
+SET @@global.wait_timeout= 2;
+--echo disconnect default;
+disconnect default;
# Connect with another connection and reset counters
--disable_query_log
connect (wait_con,localhost,root,,test,,);
+--echo connection wait_con;
connection wait_con;
-set session wait_timeout=100;
+SET SESSION wait_timeout=100;
let $retries=300;
-set @aborted_clients= 0;
+SET @aborted_clients= 0;
--enable_query_log
# Disable reconnect and do the query
+connect (default,localhost,root,,test,,);
+--echo connection default;
connection default;
-# If slow host (Valgrind...), we may have already timed out here.
-# So force a reconnect if necessary, using a dummy query. And issue a
-# 'flush status' to reset the 'aborted_clients' counter.
---enable_reconnect
-select 0;
-flush status;
+--echo --disable_reconnect;
--disable_reconnect
-select 1;
+SELECT 1;
# Switch to wait_con and wait until server has aborted the connection
--disable_query_log
+--echo connection wait_con;
connection wait_con;
while (!`select @aborted_clients`)
{
- sleep 0.1;
+ real_sleep 0.1;
let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
- eval set @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
+ eval SET @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
dec $retries;
if (!$retries)
@@ -45,44 +56,51 @@ while (!`select @aborted_clients`)
--enable_query_log
# The server has disconnected, add small sleep to make sure
# the disconnect has reached client
-sleep 1;
-
+let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
+--source include/wait_condition.inc
+--echo connection default;
connection default;
# When the connection is closed in this way, the error code should
-# be consistent see bug#2845 for an explanation
+# be consistent see Bug#2845 for an explanation
# depending on platform/client, either errno 2006 or 2013 can occur below
--error 2006,2013
-select 2;
+SELECT 2;
+--echo --enable_reconnect;
--enable_reconnect
-select 3;
+SELECT 3;
# Disconnect so that we will not be confused by a future abort from this
# connection.
+--echo disconnection default;
disconnect default;
#
# Do the same test as above on a TCP connection
-# (which we get by specifying a ip adress)
+# (which we get by specifying an ip adress)
# Connect with another connection and reset counters
--disable_query_log
+--echo connection wait_con;
connection wait_con;
-flush status; # Reset counters
+FLUSH STATUS; # Reset counters
let $retries=300;
-set @aborted_clients= 0;
+SET @aborted_clients= 0;
--enable_query_log
+--echo connection con1;
connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
+--echo --disable_reconnect;
--disable_reconnect
-select 1;
+SELECT 1;
# Switch to wait_con and wait until server has aborted the connection
--disable_query_log
+--echo connection wait_con;
connection wait_con;
while (!`select @aborted_clients`)
{
- sleep 0.1;
+ real_sleep 0.1;
let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
- eval set @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
+ eval SET @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
dec $retries;
if (!$retries)
@@ -93,14 +111,23 @@ while (!`select @aborted_clients`)
--enable_query_log
# The server has disconnected, add small sleep to make sure
# the disconnect has reached client
-sleep 1;
+let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
+--source include/wait_condition.inc
+--echo connection con1;
connection con1;
# When the connection is closed in this way, the error code should
-# be consistent see bug#2845 for an explanation
+# be consistent see Bug#2845 for an explanation
# depending on platform/client, either errno 2006 or 2013 can occur below
--error 2006,2013
-select 2;
+SELECT 2;
+--echo --enable_reconnect;
--enable_reconnect
-select 3;
+SELECT 3;
+--replace_result $start_value <start_value>
+eval SET @@global.wait_timeout= $start_value;
+# ML: The start value might be changed in future ...
+--echo disconnection con1;
disconnect con1;
+
+
| Thread |
|---|
| • bzr commit into mysql-5.1-bugteam branch (horst:2743) Bug#39108 | Horst Hunger | 23 Jan |