Nikita Amelchev created IGNITE-29233:
----------------------------------------

             Summary: Fix explicit lock left acquired when its timeout expires 
during mapping
                 Key: IGNITE-29233
                 URL: https://issues.apache.org/jira/browse/IGNITE-29233
             Project: Ignite
          Issue Type: Bug
            Reporter: Nikita Amelchev
            Assignee: Nikita Amelchev


Fix explicit lock left acquired when its timeout expires during mapping

If the timeout of {{IgniteCache.lock(key).tryLock(timeout)}} expires while the 
lock request is still being mapped (a GC pause longer than the timeout, or the 
mapping waits for an exchange), the lock future is completed and undone 
*before* its candidates are registered. {{tryLock}} returns {{false}}, but:
* the key stays locked on the primary node with no thread able to release it;
* the next partition map exchange hangs waiting for the leaked candidate.

A reentry of a key the thread already holds is not reverted either when a 
multi-key lock times out, so the key stays locked after the holder releases it.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to