[ 
https://issues.apache.org/jira/browse/HBASE-10704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Enis Soztutar updated HBASE-10704:
----------------------------------

    Attachment: hbase-10704_v3.patch

in v2, we do not execute the inner for loop at all, since we exit after the 
first try no matter what. 
Please check out v3, which should fix the problem. 

> BaseLoadBalancer#roundRobinAssignment() may add same region to assignment 
> plan multiple times
> ---------------------------------------------------------------------------------------------
>
>                 Key: HBASE-10704
>                 URL: https://issues.apache.org/jira/browse/HBASE-10704
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Ted Yu
>            Assignee: Ted Yu
>         Attachments: 10704-v1.txt, 10704-v2.txt, hbase-10704_v3.patch
>
>
> I noticed the following exception in some unit tests:
> {code}
> 2014-03-09 03:38:13,523 WARN  
> [s111-s2.cs1cloud.internal,57347,1394350359795-GeneralBulkAssigner-2] 
> master.GeneralBulkAssigner$SingleServerBulkAssigner(232): Failed bulking 
> assigning 18 region(s) to s111.internal,46094,1394350360588, and continue to 
> bulk assign others
> java.lang.NullPointerException
>       at 
> org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1505)
>       at 
> org.apache.hadoop.hbase.master.GeneralBulkAssigner$SingleServerBulkAssigner.run(GeneralBulkAssigner.java:228)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:722)
> {code}
> Here is related code:
> {code}
>           Lock lock = locks.remove(encodedName);
>           lock.unlock();
> {code}
> lock was null due to BaseLoadBalancer#roundRobinAssignment() adding same 
> region to assignment plan multiple times.
> This happens in computing lastFewRegions where 
> cluster.wouldLowerAvailability() returns true.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to