[
https://issues.apache.org/jira/browse/HBASE-4482?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13114381#comment-13114381
]
Li Pi commented on HBASE-4482:
------------------------------
Problem:
Steady State: SingleSizeCache and SlabCache both contain key "A"
Thread A: Caches something, starting eviction of Key A.
Thread B: Checks for Key A -> Returns Gets Null, as eviction has begun
Thread B: Recaches Key A, gets to SingleSizeCache, does not get the
PutIfAbsentLoop yet...
Thread C: Caches another key, starting the second eviction of Key A.
Thread A: does its onEviction, removing the entry of Key A from SlabCache.
Thread C: does its onEviction, removing the (blank) entry of Key A
from SlabCache:
Thread B: goes to putifabsent, and puts its entry into SlabCache
end result:
Key A in SlabCache, but not in SingleSizeCache.
When Key A is recached, it will stall at putifAbsent forever.
This causes the test to hang, and build to not pass.
> Race Condition Concerning Eviction in SlabCache
> -----------------------------------------------
>
> Key: HBASE-4482
> URL: https://issues.apache.org/jira/browse/HBASE-4482
> Project: HBase
> Issue Type: Sub-task
> Reporter: Li Pi
> Assignee: Li Pi
> Fix For: 0.92.0
>
>
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira