mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 02:46:29 +01:00 
			
		
		
		
	 43745b7e17
			
		
	
	
	43745b7e17
	
	
	
		
			
			Use suspend thread syncpoint instead of include/wait_condition.inc to
make sure DELETE created waiting lock before the next UPDATE begins
locking.
This is backport of commit 0fa4dd0747
from 10.6.
		
	
			
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			597 B
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			597 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| CREATE TABLE t(a INT PRIMARY KEY) ENGINE=InnoDB;
 | |
| INSERT INTO t VALUES (3);
 | |
| BEGIN;
 | |
| UPDATE t SET a = 2;
 | |
| connect con1,localhost,root;
 | |
| SET DEBUG_SYNC="lock_wait_start SIGNAL del_locked";
 | |
| DELETE FROM t;
 | |
| connection default;
 | |
| SET DEBUG_SYNC="now WAIT_FOR del_locked";
 | |
| UPDATE t SET a = 1;
 | |
| COMMIT;
 | |
| connection con1;
 | |
| ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
 | |
| disconnect con1;
 | |
| connection default;
 | |
| # The above DELETE must delete all the rows in the table, so the
 | |
| # following SELECT must show 0 rows.
 | |
| SELECT count(*) FROM t;
 | |
| count(*)
 | |
| 1
 | |
| SET DEBUG_SYNC="reset";
 | |
| DROP TABLE t;
 |