Deadlock in RELEASE_LOCK()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Percona Server moved to https://jira.percona.com/projects/PS |
Fix Released
|
Medium
|
Alexey Kopytov | ||
5.6 |
Fix Released
|
Medium
|
Alexey Kopytov |
Bug Description
The RELEASE_LOCK() implementation introduced by the multiple user level locks patch can result in a deadlock under the following conditions:
- connection #1 calls RELEASE_LOCK() for a previously acquired lock. In which case MDL_lock:
- connection #2 calls RELEASE_LOCK() simultaneously for the same lock being released by connection #1. Since connection #2 did not own the lock, it calls MDL_map_
With the right timing for the above events we get each thread waiting for a lock acquired by the other thread, i.e. a deadlock.
Related branches
- Alexey Kopytov (community): Approve
tags: | added: i48942 |
Percona now uses JIRA for bug reports so this bug report is migrated to: https:/ /jira.percona. com/browse/ PS-1596