Bug #22876 | Four-way deadlock | ||
---|---|---|---|
Submitted: | 1 Oct 2006 20:10 | Modified: | 6 Mar 2010 19:32 |
Reporter: | Peter Gulutzan | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Locking | Severity: | S3 (Non-critical) |
Version: | 5.1.12-beta-debug | OS: | Linux (SUSE 10.0 / 64-bit) |
Assigned to: | Jon Olav Hauglid | CPU Architecture: | Any |
Tags: | falcon |
[1 Oct 2006 20:10]
Peter Gulutzan
[2 Oct 2006 12:27]
Heikki Tuuri
Peter, the reason is that the second inserting transaction will wait for a row lock on the duplicate key record: a duplicate key error must be locked with an S-lock on the duplicate row to ensure that execution is serializable. I am reluctant to fix this for InnoDB (if at all possible inside InnoDB code), as the lock wait timeout will normally resolve the hang in 50 seconds. Regards, Heikki
[2 Oct 2006 14:10]
Peter Gulutzan
Heikki, You are right to be reluctant. I believe this bug should stay in category "MySQL Server".My use of the engine=innodb clause in the example was not meant to suggest that I think this should be of any concern for InnoDB people.
[10 Oct 2006 12:00]
MySQL Verification Team
Thank you for the bug report. Verified as described.
[2 Jul 2009 9:49]
Konstantin Osipov
Fixed with the fix for Bug#989. Now you don't get a hang in connection #1, but you get: mysql> insert into tz values (2); /* hangs */ ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction Once you commit the DML transactions DDL transactions can proceed. Jon Olav, please add a test case and close the bug.
[7 Jul 2009 10:28]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/78107 2824 Jon Olav Hauglid 2009-07-07 Bug #22876 Four-way deadlock This bug was fixed as a part of Bug#989 "If DROP TABLE while there's an active transaction, wrong binlog order" A statement which would have caused circular wait will now be aborted with ER_LOCK_DEADLOCK. Test case based on bug description added to innodb-lock.test. Note that innodb_lock_wait_timeout is set to 5 mins to prevent race conditions in the test.
[8 Jul 2009 12:13]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/78198 2825 Jon Olav Hauglid 2009-07-08 Bug #22876 Four-way deadlock This bug was fixed as a part of Bug#989 "If DROP TABLE while there's an active transaction, wrong binlog order" A statement which would have caused circular wait will now be aborted with ER_LOCK_DEADLOCK. Test case based on bug description added to innodb_mysql_lock.test. Note that innodb_lock_wait_timeout is set to 5 mins to prevent race conditions in the test.
[23 Jul 2009 9:13]
Konstantin Osipov
Test case is approved to go into Azalea.
[23 Jul 2009 10:13]
Jon Olav Hauglid
Pushed to azalea-bugfixing.
[4 Aug 2009 19:50]
Bugs System
Pushed into 5.4.4-alpha (revid:alik@sun.com-20090804194615-h40sa098mx4z49qg) (version source revid:iggy@mysql.com-20090731204544-7nio1afvg0dmzs7g) (merge vers: 5.4.4-alpha) (pib:11)
[6 Aug 2009 20:26]
Paul DuBois
Noted in 5.4.4 changelog. A statement that caused a circular wait among statements did not return a deadlock error. Now the server detects deadlock and returns ER_LOCK_DEADLOCK.
[8 Dec 2009 13:28]
Jon Olav Hauglid
Pushed to mysql-next-4284 (5.6.0-beta).
[16 Feb 2010 16:50]
Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100216101445-2ofzkh48aq2e0e8o) (version source revid:kostja@sun.com-20091211154405-c9yhiewr9o5d20rq) (merge vers: 6.0.14-alpha) (pib:16)
[16 Feb 2010 17:00]
Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100216101208-33qkfwdr0tep3pf2) (version source revid:kostja@sun.com-20091208135954-h6ipvx9mpzmpuipk) (pib:16)
[17 Feb 2010 0:31]
Paul DuBois
Noted in 6.0.14 changelog. Setting report to Need Merge pending push of Celosia into release tree.
[6 Mar 2010 10:54]
Bugs System
Pushed into 5.5.3-m3 (revid:alik@sun.com-20100306103849-hha31z2enhh7jwt3) (version source revid:vvaintroub@mysql.com-20100216221947-luyhph0txl2c5tc8) (merge vers: 5.5.99-m3) (pib:16)
[6 Mar 2010 19:32]
Paul DuBois
Noted in 5.5.3 changelog.