mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
Merge mysql.com:/home/tomash/src/mysql_ab/mysql-5.0
into mysql.com:/home/tomash/src/mysql_ab/mysql-5.0-bug15933
This commit is contained in:
commit
8881e660d0
2 changed files with 59 additions and 22 deletions
|
@ -26,20 +26,20 @@ Last_query_cost 0.000000
|
|||
FLUSH STATUS;
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 3
|
||||
Max_used_connections 1
|
||||
SET @save_thread_cache_size=@@thread_cache_size;
|
||||
SET GLOBAL thread_cache_size=3;
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 5
|
||||
Max_used_connections 3
|
||||
FLUSH STATUS;
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 2
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 3
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 4
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 5
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
Variable_name Value
|
||||
Max_used_connections 6
|
||||
SET GLOBAL thread_cache_size=@save_thread_cache_size;
|
||||
|
|
|
@ -36,6 +36,10 @@ reap;
|
|||
show status like 'Table_lock%';
|
||||
drop table t1;
|
||||
|
||||
disconnect con2;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
|
@ -60,48 +64,81 @@ show status like 'last_query_cost';
|
|||
# taking a thread from the cache as well as when creating new threads
|
||||
#
|
||||
|
||||
# Previous test uses con1, con2. If we disconnect them, there will be
|
||||
# a race on when exactly this will happen, so we better leave them as
|
||||
# is.
|
||||
connection default;
|
||||
# Wait for at most $disconnect_timeout seconds for disconnects to finish.
|
||||
let $disconnect_timeout = 10;
|
||||
|
||||
# Reset max_used_connections from previous tests.
|
||||
# Wait for any previous disconnects to finish.
|
||||
FLUSH STATUS;
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
eval SET @wait_left = $disconnect_timeout;
|
||||
let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
|
||||
eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
|
||||
let $wait_more = `SELECT @max_used_connections != 1 && @wait_left > 0`;
|
||||
while ($wait_more)
|
||||
{
|
||||
sleep 1;
|
||||
FLUSH STATUS;
|
||||
SET @wait_left = @wait_left - 1;
|
||||
let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
|
||||
eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
|
||||
let $wait_more = `SELECT @max_used_connections != 1 && @wait_left > 0`;
|
||||
}
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
|
||||
# Prerequisite.
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
|
||||
# Save original setting.
|
||||
SET @save_thread_cache_size=@@thread_cache_size;
|
||||
SET GLOBAL thread_cache_size=3;
|
||||
|
||||
connect (con3,localhost,root,,);
|
||||
connect (con4,localhost,root,,);
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
||||
connection con3;
|
||||
disconnect con4;
|
||||
connection con1;
|
||||
disconnect con2;
|
||||
|
||||
# Check that max_used_connections still reflects maximum value.
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
|
||||
# Check that after flush max_used_connections equals to current number
|
||||
# of connections.
|
||||
# of connections. First wait for previous disconnect to finish.
|
||||
FLUSH STATUS;
|
||||
--disable_query_log
|
||||
--disable_result_log
|
||||
eval SET @wait_left = $disconnect_timeout;
|
||||
let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
|
||||
eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
|
||||
let $wait_more = `SELECT @max_used_connections != 2 && @wait_left > 0`;
|
||||
while ($wait_more)
|
||||
{
|
||||
sleep 1;
|
||||
FLUSH STATUS;
|
||||
SET @wait_left = @wait_left - 1;
|
||||
let $max_used_connections = `SHOW STATUS LIKE 'max_used_connections'`;
|
||||
eval SET @max_used_connections = SUBSTRING('$max_used_connections', 21)+0;
|
||||
let $wait_more = `SELECT @max_used_connections != 2 && @wait_left > 0`;
|
||||
}
|
||||
--enable_query_log
|
||||
--enable_result_log
|
||||
# Check that we don't count disconnected thread any longer.
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
|
||||
# Check that max_used_connections is updated when cached thread is
|
||||
# reused...
|
||||
connect (con4,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
|
||||
# ...and when new thread is created.
|
||||
connect (con5,localhost,root,,);
|
||||
connect (con3,localhost,root,,);
|
||||
SHOW STATUS LIKE 'max_used_connections';
|
||||
|
||||
# Restore original setting.
|
||||
connection default;
|
||||
SET GLOBAL thread_cache_size=@save_thread_cache_size;
|
||||
|
||||
disconnect con5;
|
||||
disconnect con4;
|
||||
disconnect con3;
|
||||
disconnect con2;
|
||||
disconnect con1;
|
||||
|
|
Loading…
Add table
Reference in a new issue