Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
Description
I noticed the following exception in some unit tests:
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)
Here is related code:
Lock lock = locks.remove(encodedName); lock.unlock();
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.