50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
|
|
# -- Bug#20201006: Spamming show processlist prevents old connection
|
|
# -- threads from cleaning up.
|
|
SET @saved_max_connections = @@global.max_connections;
|
|
SET GLOBAL max_connections = 2;
|
|
|
|
# -- Check that we allow only max_connections + 1 connections here
|
|
connect con_1, localhost, root;
|
|
connect con_2, localhost, root;
|
|
connect(localhost,root,,test,MYSQL_PORT,MYSQL_SOCK);
|
|
connect con_3, localhost, root;
|
|
ERROR HY000: Too many connections
|
|
|
|
# -- Ensure we have max_connections + 1 connections.
|
|
SELECT count(*)= @@global.max_connections + 1 FROM information_schema.processlist;
|
|
count(*)= @@global.max_connections + 1
|
|
1
|
|
|
|
# -- Take LOCK_thd_remove and close one connection then
|
|
# attempt new one [should fail]...
|
|
SET DEBUG_SYNC='inside_do_for_all_thd_copy SIGNAL disconnect_connection WAIT_FOR continue';
|
|
SELECT user FROM INFORMATION_SCHEMA.PROCESSLIST GROUP BY user;;
|
|
connection default;
|
|
SET DEBUG_SYNC='now WAIT_FOR disconnect_connection';
|
|
disconnect con_1;
|
|
connect(localhost,root,,test,MYSQL_PORT,MYSQL_SOCK);
|
|
connect con_3, localhost, root;
|
|
ERROR HY000: Too many connections
|
|
|
|
# -- Release the lock. Now new connection should go through
|
|
SET DEBUG_SYNC='now SIGNAL continue';
|
|
connection con_2;
|
|
user
|
|
root
|
|
SET DEBUG_SYNC='RESET';
|
|
|
|
# -- Waiting for connection to close...
|
|
connect con_3, localhost, root;
|
|
|
|
# -- Closing connections...
|
|
disconnect con_3;
|
|
disconnect con_2;
|
|
connection default;
|
|
|
|
# -- Resetting variables...
|
|
SET GLOBAL max_connections= @saved_max_connections;
|
|
|
|
# -- End of Bug#20201006.
|
|
|