Bug 1235134

Summary: AsyncCacheLoader.load() may return stale data
Product: [JBoss] JBoss Data Grid 6 Reporter: Dan Berindei <dberinde>
Component: InfinispanAssignee: Tristan Tarrant <ttarrant>
Status: VERIFIED --- QA Contact: Martin Gencur <mgencur>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.5.0CC: 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