diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 3a487df1ef0..74ce20e69ff 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -1630,7 +1630,14 @@ public class HMaster extends HRegionServer implements MasterServices { for (RegionPlan plan: plans) { LOG.info("balance " + plan); //TODO: bulk assign - this.assignmentManager.moveAsync(plan); + try { + this.assignmentManager.moveAsync(plan); + } catch (HBaseIOException hioe) { + //should ignore failed plans here, avoiding the whole balance plans be aborted + //later calls of balance() can fetch up the failed and skipped plans + LOG.warn("Failed balance plan: {}, just skip it", plan, hioe); + } + //rpCount records balance plans processed, does not care if a plan succeeds rpCount++; balanceThrottling(balanceStartTime + rpCount * balanceInterval, maxRegionsInTransition,