mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			143 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # Last modification:
 | |
| # 2009-01-19 H.Hunger Fix Bug#39108 main.wait_timeout fails sporadically
 | |
| #                       - Increase wait timeout to 2 seconds
 | |
| #                       - Eliminated the corresponding opt file,
 | |
| #                         set global wait timeout within the test.
 | |
| #                       - Replaced sleeps by wait condition
 | |
| #                       - Minor improvements
 | |
| ###############################################################################
 | |
| # These tests cannot run with the embedded server
 | |
| -- source include/not_embedded.inc
 | |
| -- source include/one_thread_per_connection.inc
 | |
| 
 | |
| # Save the initial number of concurrent sessions
 | |
| --source include/count_sessions.inc
 | |
| 
 | |
| #
 | |
| # Bug#8731 wait_timeout does not work on Mac OS X
 | |
| #
 | |
| 
 | |
| let $start_value= `SELECT @@global.wait_timeout`;
 | |
| SET @@global.wait_timeout= 2;
 | |
| --echo disconnect default;
 | |
| disconnect default;
 | |
| 
 | |
| # Connect with another connection and reset counters
 | |
| --disable_query_log
 | |
| connect (wait_con,localhost,root,,test,,);
 | |
| --echo connection wait_con;
 | |
| connection wait_con;
 | |
| SET SESSION wait_timeout=100;
 | |
| let $retries=300;
 | |
| SET @aborted_clients= 0;
 | |
| --enable_query_log
 | |
| 
 | |
| # Disable reconnect and do the query
 | |
| connect (default,localhost,root,,test,,);
 | |
| --echo connection default;
 | |
| connection default;
 | |
| --echo --disable_reconnect;
 | |
| --disable_reconnect
 | |
| SELECT 1;
 | |
| 
 | |
| # Switch to wait_con and wait until server has aborted the connection
 | |
| --disable_query_log
 | |
| --echo connection wait_con;
 | |
| connection wait_con;
 | |
| while (!`select @aborted_clients`)
 | |
| {
 | |
|   real_sleep 0.1;
 | |
|   let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
 | |
|   eval SET @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
 | |
| 
 | |
|   dec $retries;
 | |
|   if (!$retries)
 | |
|   {
 | |
|     Failed to detect that client has been aborted;
 | |
|   }
 | |
| }
 | |
| --enable_query_log
 | |
| # The server has disconnected, add small sleep to make sure
 | |
| # the disconnect has reached client
 | |
| let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
 | |
| --source include/wait_condition.inc
 | |
| --echo connection default;
 | |
| connection default;
 | |
| # When the connection is closed in this way, the error code should
 | |
| # be consistent see Bug#2845 for an explanation
 | |
| # depending on platform/client, either errno 2006 or 2013 can occur below
 | |
| --error 2006,2013
 | |
| SELECT 2;
 | |
| --echo --enable_reconnect;
 | |
| --enable_reconnect
 | |
| SELECT 3;
 | |
| # Disconnect so that we will not be confused by a future abort from this
 | |
| # connection.
 | |
| --echo disconnection default;
 | |
| disconnect default;
 | |
| 
 | |
| #
 | |
| # Do the same test as above on a TCP connection
 | |
| # (which we get by specifying an ip adress)
 | |
| 
 | |
| # Connect with another connection and reset counters
 | |
| --disable_query_log
 | |
| --echo connection wait_con;
 | |
| connection wait_con;
 | |
| FLUSH STATUS; # Reset counters
 | |
| let $retries=300;
 | |
| SET @aborted_clients= 0;
 | |
| --enable_query_log
 | |
| 
 | |
| --echo connection con1;
 | |
| connect (con1,127.0.0.1,root,,test,$MASTER_MYPORT,);
 | |
| --echo --disable_reconnect;
 | |
| --disable_reconnect
 | |
| SELECT 1;
 | |
| 
 | |
| # Switch to wait_con and wait until server has aborted the connection
 | |
| --disable_query_log
 | |
| --echo connection wait_con;
 | |
| connection wait_con;
 | |
| while (!`select @aborted_clients`)
 | |
| {
 | |
|   real_sleep 0.1;
 | |
|   let $aborted_clients = `SHOW STATUS LIKE 'aborted_clients'`;
 | |
|   eval SET @aborted_clients= SUBSTRING('$aborted_clients', 16)+0;
 | |
| 
 | |
|   dec $retries;
 | |
|   if (!$retries)
 | |
|   {
 | |
|     Failed to detect that client has been aborted;
 | |
|   }
 | |
| }
 | |
| --enable_query_log
 | |
| # The server has disconnected, add small sleep to make sure
 | |
| # the disconnect has reached client
 | |
| let $wait_condition= SELECT COUNT(*)=1 FROM information_schema.processlist;
 | |
| --source include/wait_condition.inc
 | |
| disconnect wait_con;
 | |
| 
 | |
| --echo connection con1;
 | |
| connection con1;
 | |
| # When the connection is closed in this way, the error code should
 | |
| # be consistent see Bug#2845 for an explanation
 | |
| # depending on platform/client, either errno 2006 or 2013 can occur below
 | |
| --error 2006,2013
 | |
| SELECT 2;
 | |
| --echo --enable_reconnect;
 | |
| --enable_reconnect
 | |
| SELECT 3;
 | |
| --replace_result $start_value <start_value>
 | |
| eval SET @@global.wait_timeout= $start_value;
 | |
| --echo disconnection con1;
 | |
| disconnect con1;
 | |
| 
 | |
| 
 | |
| # The last connect is to keep tools checking the current test happy.
 | |
| connect (default,localhost,root,,test,,);
 | |
| 
 | |
| # Wait till all disconnects are completed
 | |
| --source include/wait_until_count_sessions.inc
 | |
| 
 |