mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 18:36:12 +01:00 
			
		
		
		
	 a19cb3884f
			
		
	
	
	a19cb3884f
	
	
	
		
			
			Shutdown of mtr tests may be too impatient, esp on CI environment where 10 seconds of `arg` of `shutdown_server arg` may not be enough for the clean shutdown to complete. This is fixed to remove explicit non-zero timeout argument to `shutdown_server` from all mtr tests. mysqltest computes 60 seconds default value for the timeout for the argless `shutdown_server` command. This policy is additionally ensured with a compile time assert.
		
			
				
	
	
		
			87 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #  BUG#40611: MySQL cannot make a binary log after sequential number beyond 
 | |
| #             unsigned long.
 | |
| # 
 | |
| #  Problem statement
 | |
| #  =================
 | |
| #
 | |
| #    Extension for log file names might be created with negative 
 | |
| #    numbers (when counter used would wrap around), causing server 
 | |
| #    failure when incrementing -00001 (reaching number 000000 
 | |
| #    extension).
 | |
| #
 | |
| #  Test
 | |
| #  ====
 | |
| #    This tests aims at testing the a patch that removes negatives 
 | |
| #    numbers from log name extensions and checks that the server 
 | |
| #    reports gracefully that the limit has been reached.
 | |
| #
 | |
| #    It instruments index file to point to a log file close to
 | |
| #    the new maximum and calls flush logs to get warning.
 | |
| #
 | |
| 
 | |
| call mtr.add_suppression("Next log extension: 2147483647. Remaining log filename extensions: 0.");
 | |
| call mtr.add_suppression("Log filename extension number exhausted:");
 | |
| call mtr.add_suppression("Can't generate a unique log-filename");
 | |
| 
 | |
| 
 | |
| -- source include/have_log_bin.inc
 | |
| RESET MASTER;
 | |
| 
 | |
| -- let $MYSQLD_DATADIR= `select @@datadir`
 | |
| -- let $log_bin_index=`select substring_index(@@log_bin_index,'/',-1)`
 | |
| -- let $log_bin_basename=`select substring_index(@@log_bin_basename,'/',-1)`
 | |
| 
 | |
| ###############################################
 | |
| # check hitting maximum file name extension:
 | |
| ###############################################
 | |
| 
 | |
| ##########
 | |
| # Prepare
 | |
| ##########
 | |
| 
 | |
| # 1. Stop master server
 | |
| -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 | |
| -- shutdown_server
 | |
| -- source include/wait_until_disconnected.inc
 | |
| 
 | |
| # 2. Prepare log and index file
 | |
| -- copy_file $MYSQLD_DATADIR/$log_bin_index $MYSQLD_DATADIR/$log_bin_index.orig
 | |
| -- copy_file $MYSQLD_DATADIR/$log_bin_basename.000001 $MYSQLD_DATADIR/$log_bin_basename.2147483646
 | |
| -- append_file $MYSQLD_DATADIR/$log_bin_index
 | |
| master-bin.2147483646
 | |
| EOF
 | |
| 
 | |
| # 3. Restart the server
 | |
| -- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 | |
| -- enable_reconnect
 | |
| -- source include/wait_until_connected_again.inc
 | |
| 
 | |
| ###########
 | |
| # Assertion
 | |
| ###########
 | |
| 
 | |
| # assertion: should raise error
 | |
| -- error ER_NO_UNIQUE_LOGFILE
 | |
| FLUSH LOGS;
 | |
| 
 | |
| ##############
 | |
| # Clean up
 | |
| ##############
 | |
| 
 | |
| # 1. Stop the server
 | |
| -- exec echo "wait" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 | |
| -- shutdown_server
 | |
| -- source include/wait_until_disconnected.inc
 | |
| 
 | |
| # 2. Undo changes to index and log files
 | |
| -- remove_file $MYSQLD_DATADIR/$log_bin_index
 | |
| -- copy_file $MYSQLD_DATADIR/$log_bin_index.orig $MYSQLD_DATADIR/$log_bin_index
 | |
| -- remove_file $MYSQLD_DATADIR/$log_bin_index.orig
 | |
| 
 | |
| -- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483646
 | |
| -- remove_file $MYSQLD_DATADIR/$log_bin_basename.2147483647
 | |
| 
 | |
| # 3. Restart the server
 | |
| -- exec echo "restart" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 | |
| -- enable_reconnect
 | |
| -- source include/wait_until_connected_again.inc
 |