mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| --source include/galera_cluster.inc
 | |
| --source include/have_innodb.inc
 | |
| 
 | |
| #
 | |
| # A conflict between a streaming replication fragment and a local transaction
 | |
| #
 | |
| 
 | |
| --connection node_1
 | |
| CREATE TABLE t1 (f1 INTEGER PRIMARY KEY) ENGINE=InnoDB;
 | |
| SET SESSION wsrep_trx_fragment_size = 1;
 | |
| SET AUTOCOMMIT=OFF;
 | |
| START TRANSACTION;
 | |
| INSERT INTO t1 VALUES (1);
 | |
| INSERT INTO t1 VALUES (2);
 | |
| INSERT INTO t1 VALUES (3);
 | |
| INSERT INTO t1 VALUES (4);
 | |
| INSERT INTO t1 VALUES (5);
 | |
| 
 | |
| --connection node_2
 | |
| # Wait until a streaming replication fragment has arrived
 | |
| SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
 | |
| --let $wait_condition = SELECT COUNT(*) > 0 FROM t1;
 | |
| --source include/wait_condition.inc
 | |
| 
 | |
| # Attempt a conflicting INSERT. This will block
 | |
| --send INSERT INTO t1 VALUES(1);
 | |
| 
 | |
| # Observe the block from a separate connection
 | |
| --connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2
 | |
| 
 | |
| --let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'wsrep applier committed%';
 | |
| --source include/wait_condition.inc
 | |
| 
 | |
| --let $wait_condition = SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE STATE LIKE 'update';
 | |
| --source include/wait_condition.inc
 | |
| 
 | |
| # Commit the remote transaction, causing the local transaction to return an error
 | |
| --connection node_1
 | |
| COMMIT;
 | |
| 
 | |
| --connection node_2
 | |
| --error ER_DUP_ENTRY
 | |
| --reap
 | |
| 
 | |
| DROP TABLE t1;
 | 
