You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Stephen Yuan Jiang (JIRA)" <ji...@apache.org> on 2017/06/21 00:13:00 UTC

[jira] [Commented] (HBASE-15691) Port HBASE-10205 (ConcurrentModificationException in BucketAllocator) to branch-1

    [ https://issues.apache.org/jira/browse/HBASE-15691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16056708#comment-16056708 ] 

Stephen Yuan Jiang commented on HBASE-15691:
--------------------------------------------

[~zjushch], you reviewed the original patch in HBASE-10205.  Could you help review the V2 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-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)