diff options
Diffstat (limited to 'mysql-test/main/ssl-big.test')
-rw-r--r-- | mysql-test/main/ssl-big.test | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/mysql-test/main/ssl-big.test b/mysql-test/main/ssl-big.test new file mode 100644 index 00000000..46076e03 --- /dev/null +++ b/mysql-test/main/ssl-big.test @@ -0,0 +1,71 @@ +# 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! |