mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			60 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #
 | |
| # Test Flush tables with read lock along with
 | |
| # flush tables <table> with read lock for compatibility.
 | |
| # Also, making sure all DDL and DMLs are propagated
 | |
| # after provider is unpaused
 | |
| #
 | |
| --source include/galera_cluster.inc
 | |
| --source include/have_debug.inc
 | |
| --source include/have_debug_sync.inc
 | |
| 
 | |
| --let $galera_connection_name = node_2a
 | |
| --let $galera_server_number = 2
 | |
| --source include/galera_connect.inc
 | |
| 
 | |
| --connection node_1
 | |
| CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (1);
 | |
| 
 | |
| --connection node_2
 | |
| SET session wsrep_sync_wait=0;
 | |
| FLUSH TABLES WITH READ LOCK;
 | |
| 
 | |
| --connection node_1
 | |
| ALTER TABLE t1 ADD COLUMN f2 INTEGER;
 | |
| INSERT INTO t1 VALUES (2,3);
 | |
| 
 | |
| --connection node_2a
 | |
| SET session wsrep_sync_wait=0;
 | |
| SHOW CREATE TABLE t1;
 | |
| SET debug_sync='flush_tables_with_read_lock_after_acquire_locks SIGNAL parked2 WAIT_FOR go2';
 | |
| --send FLUSH TABLES t1 WITH READ LOCK;
 | |
| 
 | |
| --connection node_2
 | |
| SET debug_sync='now WAIT_FOR parked2';
 | |
| 
 | |
| # let the flush table wait in pause state before we unlock
 | |
| # table otherwise there is window where-in flush table is
 | |
| # yet to wait in pause and unlock allows alter table to proceed.
 | |
| # this is because send is asynchronous.
 | |
| --let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE Info LIKE 'FLUSH TABLES t1 WITH READ LOCK';
 | |
| --let $wait_condition_on_error_output = SHOW PROCESSLIST
 | |
| --source include/wait_condition_with_debug.inc
 | |
| 
 | |
| SET debug_sync='now SIGNAL go2';
 | |
| # this will release existing lock but will not resume
 | |
| # the cluster as there is new FTRL that is still pausing it.
 | |
| UNLOCK TABLES;
 | |
| SHOW CREATE TABLE t1;
 | |
| 
 | |
| --connection node_2a
 | |
| --reap
 | |
| set debug_sync= 'RESET';
 | |
| UNLOCK TABLES;
 | |
| 
 | |
| SET SESSION wsrep_sync_wait = DEFAULT;
 | |
| SHOW CREATE TABLE t1;
 | |
| SELECT * from t1;
 | |
| 
 | |
| --connection node_1
 | |
| DROP TABLE t1;
 | 
