Details
-
Sub-task
-
Resolution: Done
-
Major
-
5.0.1.FINAL, 5.1.0.CR3
-
None
Description
A write/lock command holds the state transfer lock for its entire duration, including while waiting to acquire key locks. Because of this, we can get a deadlock scenario:
1. Tx1 waits for key k1 while holding the state transfer lock
2. State transfer waits for Tx1 while blocking new write commands
3. Tx2 waits for state transfer to end while holding the k1 lock
The only way out of this scenario at the moment is for Tx1 to time out and fail to acquire the lock. We should make it possible to release the state transfer lock temporarily and return to waiting for the key lock after state transfer has ended.
ISPN-1424 might make this issue obsolete.