
# -- 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='fill_schema_processlist_after_copying_threads 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.

