mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 2fdb88e870
			
		
	
	
	2fdb88e870
	
	
	
		
			
			The test case runs SHOW SLAVE HOSTS. The output of this is only stable after all slaves have had time to register with the master; this happens asynchroneously. The test was waiting for the slave with server_id=3 to appear in the output, but it was missing a similar wait for server_id=2. Thus, if server_id=2 was much slower to connect for some reason, it could be missing from the output, causing the test to fail.
		
			
				
	
	
		
			52 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| ###############################################################################
 | |
| # Bug#13963 SHOW SLAVE HOSTS is unreliable
 | |
| #
 | |
| # Slaves only appear in the output of SHOW SLAVE HOSTS when report-host option
 | |
| # is set. If an expected slave does not appear in the list, nobody knows
 | |
| # whether the slave does not connect or has started without the "report-host"
 | |
| # option.
 | |
| #
 | |
| # Remove the "Rpl_recovery_rank" column from SHOW SLAVE HOSTS, It is not
 | |
| # implemented.
 | |
| #######################################################################
 | |
| source include/master-slave.inc;
 | |
| connect (slave2,127.0.0.1,root,,test,$SLAVE_MYPORT2,);
 | |
| 
 | |
| connection slave2;
 | |
| RESET SLAVE;
 | |
| --replace_result $MASTER_MYPORT MASTER_PORT
 | |
| --eval CHANGE MASTER TO master_host='127.0.0.1',master_port=$MASTER_MYPORT,master_user='root'
 | |
| START SLAVE IO_THREAD;
 | |
| source include/wait_for_slave_io_to_start.inc;
 | |
| 
 | |
| connection master;
 | |
| let $show_statement= SHOW SLAVE HOSTS;
 | |
| let $field= Server_id;
 | |
| # 3 is server_id of slave2.
 | |
| let $condition= ='3';
 | |
| source include/wait_show_condition.inc;
 | |
| # Make sure that the other slave also had time to register. Otherwise we get
 | |
| # occasional spurious failures where server_id=2 is missing from SHOW SLAVE
 | |
| # HOSTS, when that slave is much slower to register due to thread scheduling.
 | |
| let $condition= ='2';
 | |
| source include/wait_show_condition.inc;
 | |
| --replace_column 3 'SLAVE_PORT'
 | |
| --replace_result $SLAVE_MYPORT SLAVE_PORT $DEFAULT_MASTER_PORT DEFAULT_PORT
 | |
| SHOW SLAVE HOSTS;
 | |
| 
 | |
| connection slave2;
 | |
| --source include/stop_slave_io.inc
 | |
| 
 | |
| connection master;
 | |
| let $show_statement= SHOW SLAVE HOSTS;
 | |
| let $field= Server_id;
 | |
| # 3 is server_id of slave2.
 | |
| let $condition= <> '3';
 | |
| # All rows of 'SHOW SLAVE HOSTS' are not equal to 3.  It mean that master has
 | |
| # knew the leave of slave2 and has unregistered it.
 | |
| let $wait_for_all= 1;
 | |
| source include/wait_show_condition.inc;
 | |
| --replace_result $SLAVE_MYPORT SLAVE_PORT
 | |
| SHOW SLAVE HOSTS;
 | |
| 
 | |
| --source include/rpl_end.inc
 |