# Turn on ssl between the client and server # and run a number of tests -- source include/have_ssl_communication.inc -- source include/big_test.inc -- source include/have_64bit.inc # No point in running with valgrind as it takes 1.5 hours -- source include/not_valgrind.inc # This test often times out with MemorySanitizer. -- source include/not_msan.inc # Save the initial number of concurrent sessions --source include/count_sessions.inc --disable_warnings DROP TABLE IF EXISTS t1, t2; --enable_warnings # # Bug#29579 Clients using SSL can hang the server # connect (ssl_con,localhost,root,,,,,SSL); create table t1 (a int); disconnect ssl_con; --disable_query_log --disable_result_log let $count= 2000; while ($count) { connect (ssl_con,localhost,root,,,,,SSL); eval insert into t1 values ($count); dec $count; # This select causes the net buffer to fill as the server sends the results # but the client doesn't reap the results. The results are larger each time # through the loop, so that eventually the buffer is completely full # at the exact moment the server attempts to the close the connection with # the lock held. send select * from t1; # now send the quit the command so the server will initiate the shutdown. send_quit ssl_con; # if the server is hung, this will hang too: connect (ssl_con2,localhost,root,,,,,SSL); # no hang if we get here, close and retry disconnect ssl_con2; disconnect ssl_con; } --enable_query_log --enable_result_log connect (ssl_con,localhost,root,,,,,SSL); drop table t1; connection default; disconnect ssl_con; # Wait till all disconnects are completed --source include/wait_until_count_sessions.inc ## This test file is for testing encrypted communication only, not other ## encryption routines that the SSL library happens to provide!