Bug 1235134
Summary: | AsyncCacheLoader.load() may return stale data | ||
---|---|---|---|
Product: | [JBoss] JBoss Data Grid 6 | Reporter: | Dan Berindei <dberinde> |
Component: | Infinispan | Assignee: | Tristan Tarrant <ttarrant> |
Status: | VERIFIED --- | QA Contact: | Martin Gencur <mgencur> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 6.5.0 | CC: | chuffman, jdg-bugs, vjuranek |
Target Milestone: | ER1 | ||
Target Release: | 6.5.1 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: |
A race condition existed that allowed <methodname>AsyncCacheLoader.load()</methodname> / <methodname>State.get()</methodname> to return stale data. As <methodname>State.get()</methodname> scans the states of <classname>AsyncCacheWriter</classname> from head to tail, while the <classname>AsyncStoreCoordinator</classname> may move conflicting entries from the current state to the head state. If <methodname>State.get()</methodname> / <methodname>AsyncCacheLoader.load()</methodname> is preempted after checking the head state then it may not see modifications moved by the coordinator thread and load stale data instead.
This issue is resolved as of Red Hat JBoss Data Grid 6.5.1; the <classname>AsyncStoreCoordinator</classname> was redesigned so that conflicting keys are collected in a separate list which is processed after the <classname>AsyncStoreProcessors</classname> complete.
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 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
Dan Berindei
2015-06-24 06:48:35 UTC
|