diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java index 4a1e71f..cfbcf0c 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java @@ -1453,6 +1453,7 @@ public class AssignmentManager { LOG.trace("Not using bulk assignment since we are assigning only " + regions + " region(s) to " + servers + " server(s)"); } + // invoke assignment (async) for (Map.Entry> plan: bulkPlan.entrySet()) { if (!assign(plan.getKey(), plan.getValue()) && !server.isStopped()) { for (HRegionInfo region: plan.getValue()) { @@ -1462,6 +1463,12 @@ public class AssignmentManager { } } } + // wait for assignment completion + for (Map.Entry> plan: bulkPlan.entrySet()) { + for (HRegionInfo region: plan.getValue()) { + waitForAssignment(region); + } + } } else { LOG.info("Bulk assigning " + regions + " region(s) across " + totalServers + " server(s), " + message);