Index: src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (revision 1433195) +++ src/main/java/org/apache/hadoop/hbase/master/AssignmentManager.java (working copy) @@ -1205,9 +1205,19 @@ public void nodeChildrenChanged(String path) { if(path.equals(watcher.assignmentZNode)) { try { - // Just make sure we see the changes for the new znodes - ZKUtil.listChildrenAndWatchThem(watcher, + List children = ZKUtil.listChildrenAndWatchForNewChildren(watcher, watcher.assignmentZNode); + if (children != null) { + for (String child : children) { + Stat stat = new Stat(); + RegionTransitionData data = ZKAssign.getDataAndWatch(watcher, + ZKUtil.joinZNode(watcher.assignmentZNode, child), stat); + // See HBASE-7551, handle splitting here as well, in case we miss the node change event + if (data.getEventType() == EventType.RS_ZK_REGION_SPLITTING) { + handleRegion(data, stat.getAversion()); + } + } + } } catch(KeeperException e) { master.abort("Unexpected ZK exception reading unassigned children", e); }