[
https://issues.apache.org/jira/browse/HBASE-15691?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephen Yuan Jiang updated HBASE-15691:
---------------------------------------
Attachment: HBASE-15691.v3-branch-1.patch
> Port HBASE-10205 (ConcurrentModificationException in BucketAllocator) to
> branch-1
> ---------------------------------------------------------------------------------
>
> Key: HBASE-15691
> URL: https://issues.apache.org/jira/browse/HBASE-15691
> Project: HBase
> Issue Type: Sub-task
> Affects Versions: 1.3.0
> Reporter: Andrew Purtell
> Assignee: Stephen Yuan Jiang
> Fix For: 1.3.2, 1.4.1, 1.5.0, 1.2.7
>
> Attachments: HBASE-15691-branch-1.patch,
> HBASE-15691.v2-branch-1.patch, HBASE-15691.v3-branch-1.patch
>
>
> HBASE-10205 solves the following problem:
> "
> The BucketCache WriterThread calls BucketCache.freeSpace() upon draining the
> RAM queue containing entries to be cached. freeSpace() in turn calls
> BucketSizeInfo.statistics() through BucketAllocator.getIndexStatistics(),
> which iterates over 'bucketList'. At the same time another WriterThread might
> call BucketAllocator.allocateBlock(), which may call
> BucketSizeInfo.allocateBlock(), add a bucket to 'bucketList' and consequently
> cause a ConcurrentModificationException. Calls to
> BucketAllocator.allocateBlock() are synchronized, but calls to
> BucketAllocator.getIndexStatistics() are not, which allows this race to occur.
> "
> However, for some unknown reason, HBASE-10205 was only committed to master
> (2.0 and beyond) and 0.98 branches only. To preserve continuity we should
> commit it to branch-1.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)