mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 10:56:12 +01:00 
			
		
		
		
	 552cba92de
			
		
	
	
	552cba92de
	
	
	
		
			
			When client connections use threadpool, i.e. configuration has: thread_handling = pool-of-threads it turned out that during wsrep replication shutdown, not all client connections could be closed. Reason was that some client threads has stmt_da in state DA_EOF, and this state was earlier used to detect if client connection was issuing SHUTDOWN command. To fix this, the connection executing SHUTDOWN is now detected by looking at the actual command being executed: thd->get_command() == COM_SHUTDOWN During replication shutdown, all other connections but the SHUTDOWN executor, are terminated. This commit has new mtr test galera.galera_threadpool, which opens a number of threadpool client connections, and then restarts the node to verify that connections in threadpool are terminated during shutdown. Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			858 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			858 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| connection node_2;
 | |
| connection node_1;
 | |
| connection node_1;
 | |
| connection node_2;
 | |
| connect node_2a, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | |
| connect node_2b, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | |
| connect node_2c, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | |
| connect node_2d, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | |
| connect node_2e, 127.0.0.1, root, , test, $NODE_MYPORT_2;
 | |
| connection node_2a;
 | |
| CREATE TABLE t1 (f1 INTEGER NOT NULL PRIMARY KEY, f2 char) ENGINE=InnoDB;
 | |
| INSERT INTO t1 VALUES (0,'a');
 | |
| INSERT INTO t1 VALUES (1,'a');
 | |
| connection node_2b;
 | |
| SELECT * FROM t1;
 | |
| f1	f2
 | |
| 0	a
 | |
| 1	a
 | |
| connection node_2c;
 | |
| INSERT INTO t1 VALUES (2,'c');
 | |
| connection node_2d;
 | |
| BEGIN;
 | |
| SELECT * FROM t1;
 | |
| f1	f2
 | |
| 0	a
 | |
| 1	a
 | |
| 2	c
 | |
| connection node_2e;
 | |
| BEGIN;
 | |
| UPDATE t1 SET f2='e' WHERE f1=0;
 | |
| connection node_2;
 | |
| connection node_1;
 | |
| connection node_2;
 | |
| connection node_1;
 | |
| connection node_2;
 | |
| DROP TABLE t1;
 |