Bug 1073327
| Summary: | Stale locks during state transfer in non-tx caches | |||
|---|---|---|---|---|
| Product: | [JBoss] JBoss Data Grid 6 | Reporter: | Martin Gencur <mgencur> | |
| Component: | Infinispan | Assignee: | Tristan Tarrant <ttarrant> | |
| Status: | CLOSED UPSTREAM | QA Contact: | Martin Gencur <mgencur> | |
| Severity: | high | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.2.0 | CC: | jdg-bugs, vjuranek | |
| Target Milestone: | CR1 | |||
| Target Release: | 6.2.1 | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: |
SingleKeyNonTxInvocationContext.addLockedKey() only sets a isLocked flag, the actual key is set when the entry is wrapped and inserted in the context. If the topology changes between the lock acquisition and the entry wrapping, SingleKeyNonTxInvocationContext.getLockedKeys() will return an empty set and the lock will not be released.
Future commands will not try to acquire a lock on this node, so the stale lock is harmless most of the time. However, if there was already a command waiting for the lock, that command will time out (instead of retrying on the new primary owner).
</para>
<para>
To fix this issue, set the actual key and isLocked flag on SingleKeyNonTxInvocationContext at the same time. Furthermore, prevent from incorrect returning the empty set of keys so that keys can be properly unlocked. As a result, locks are properly released during state transfer and commands do not time out due to locks being held.
|
Story Points: | --- | |
| Clone Of: | ||||
| : | 1073331 (view as bug list) | Environment: | ||
| Last Closed: | 2025-02-10 03:35:17 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
|
Description
Martin Gencur
2014-03-06 08:32:08 UTC
Pull request: https://github.com/infinispan/jdg/pull/35 Integrated PR in jdg-6.2.x. Dan Berindei, please update the BZ status (I do not have sufficient permissions). This product has been discontinued or is no longer tracked in Red Hat Bugzilla. |