summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/ssl-big.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/ssl-big.test')
-rw-r--r--mysql-test/main/ssl-big.test71
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!