Bug 1043434

Summary: L1 entry added by ST when already invalidated
Product: [JBoss] JBoss Data Grid 6 Reporter: Radim Vansa <rvansa>
Component: InfinispanAssignee: Tristan Tarrant <ttarrant>
Status: CLOSED CURRENTRELEASE QA Contact: Martin Gencur <mgencur>
Severity: high Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: gsheldon, jdg-bugs, wburns
Target Milestone: ER2   
Target Release: 6.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
In distributed cache mode with L1 enabled and <code>onRehash=true</code>, when an entry is overwritten during state transfer, the overwrite may be ignored. This node will then report an outdated value of the entry, and after L1 timeout this entry will be completely removed. </para> <para> As a workaround, use L1 with <code>onRehash=false</code>.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-26 14:04:53 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 Radim Vansa 2013-12-16 10:14:35 UTC
Non-transactional cache with L1 enabled. Node A is losing ownership of an entry, the entry is not removed during ST but is going to L1.

1. ST builds the invalidation command, EntryWrapping interceptor starts committing all the entries
2. Write on primary owner (B) occurs
3. A gets the InvalidateL1Command, removes the ImmortalCacheEntry from data container (as it does not own the entry anymore)
4. The ST invalidation command commits the MortalCacheEntry with old value, storing it into the data container.

Result: Outdated value is in L1 cache.

Comment 2 JBoss JIRA Server 2013-12-16 14:09:11 UTC
William Burns <wburns> updated the status of jira ISPN-3838 to Coding In Progress

Comment 4 Radim Vansa 2014-05-23 06:32:48 UTC
L1OnRehash was removed, this cannot happen again.