# # Bug#25966845 INSERT ON DUPLICATE KEY GENERATE A DEADLOCK # CREATE TABLE t1(f1 int primary key, f2 int, f3 int, unique key(f2))engine=innodb; SHOW CREATE TABLE t1; Table Create Table t1 CREATE TABLE `t1` ( `f1` int(11) NOT NULL, `f2` int(11) DEFAULT NULL, `f3` int(11) DEFAULT NULL, PRIMARY KEY (`f1`), UNIQUE KEY `f2` (`f2`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 INSERT INTO t1(f1, f2, f3) VALUES(1, 10, 100); # Connection default BEGIN; INSERT INTO t1 VALUES(2, 20, 300) ON DUPLICATE KEY UPDATE f3 = 500; # Connection other: BEGIN; SET DEBUG_SYNC = 'ib_after_row_insert_step SIGNAL default_commit'; INSERT INTO t1 VALUES(2, 10, 200) ON DUPLICATE KEY UPDATE f3 = 120; # Connection default SET DEBUG_SYNC = 'now WAIT_FOR default_commit'; COMMIT; # Connection other COMMIT; # Verify Results: SELECT * FROM t1; f1 f2 f3 1 10 100 2 20 120 SET DEBUG_SYNC ='RESET'; DROP TABLE t1;