[ 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)