# Start with thread_handling=pool-of-threads # and run a number of tests -- source include/have_pool_of_threads.inc -- source include/default_optimizer_switch.inc SET optimizer_switch='outer_join_with_cache=off'; # Slow test, don't run during staging part -- source include/not_staging.inc -- source include/long_test.inc -- source include/common-tests.inc SET optimizer_switch=default; # Test that we cannot have more simultaneous connections than # --thread-pool-size on the standard port, but _can_ have additional # connections on the extra port. # First set two connections running, and check that extra connection # on normal port fails due to --thread-pool-max-threads=2. # We can afford using a really long sleep, because we won't wait # till it ends, we'll interrupt it as soon as we don't need it anymore connection default; --let $con1_id= `SELECT CONNECTION_ID()` send SELECT sleep(50); --sleep 1 connect(con2,localhost,root,,); --let $con2_id= `SELECT CONNECTION_ID()` send SELECT sleep(50); --sleep 0.5 --disable_abort_on_error --disable_result_log --disable_query_log connect(con3,localhost,root,,,,,connect_timeout=2); --enable_query_log --enable_result_log --enable_abort_on_error let $error = $mysql_errno; if (!$error) { --echo # -- Error: managed to establish more than --thread_pool_max_threads connections } if ($error) { --echo # -- Success: more than --thread_pool_max_threads normal connections not possible } connect(extracon,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,); connection extracon; SELECT 'Connection on extra port ok'; # Here, sleep just for slightly longer than 5 sec to trigger MDEV-4566 # (abort in interruptible wait connection check). send SELECT sleep(5.5); connect(extracon2,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,); connection extracon2; SELECT 'Connection on extra port 2 ok'; --disable_abort_on_error --disable_result_log --disable_query_log connect(extracon3,127.0.0.1,root,,test,$MASTER_EXTRA_PORT,,connect_timeout=2); --enable_query_log --enable_result_log --enable_abort_on_error let $error = $mysql_errno; if (!$error) { --echo # -- Error: managed to establish more than --extra-max-connections + 1 connections } if ($error) { --echo # -- Success: more than --extra-max-connections + 1 normal connections not possible } connection extracon2; --replace_result $con1_id eval KILL QUERY $con1_id; --replace_result $con2_id eval KILL QUERY $con2_id; connection default; --error ER_QUERY_INTERRUPTED --reap connection con2; --error ER_QUERY_INTERRUPTED --reap connection extracon; --reap # Check if compression works OK connect (comp_con,localhost,root,,,,,COMPRESS); SELECT 1; disconnect comp_con;