diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java index 495415f..3b9e671 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java @@ -152,15 +152,15 @@ class CatalogJanitor extends Chore { // Now work on our list of found parents. See if any we can clean up. int cleaned = 0; - HashSet parentNotCleaned = new HashSet(); //regions whose parents are still around + HashSet parentNotCleaned = new HashSet(); //regions whose parents are still around for (Map.Entry e : splitParents.entrySet()) { - if (!parentNotCleaned.contains(e.getKey()) && cleanParent(e.getKey(), e.getValue())) { + if (!parentNotCleaned.contains(e.getKey().getEncodedName()) && cleanParent(e.getKey(), e.getValue())) { cleaned++; } else { // We could not clean the parent, so it's daughters should not be cleaned either (HBASE-6160) PairOfSameType daughters = MetaReader.getDaughterRegions(e.getValue()); - parentNotCleaned.add(daughters.getFirst()); - parentNotCleaned.add(daughters.getSecond()); + parentNotCleaned.add(daughters.getFirst().getEncodedName()); + parentNotCleaned.add(daughters.getSecond().getEncodedName()); } } if (cleaned != 0) { diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java index 5327e87..3baa9ce 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java @@ -504,6 +504,7 @@ public class TestCatalogJanitor { final Map splitParents = new TreeMap(new SplitParentFirstComparator()); splitParents.put(parent, createResult(parent, splita, splitb)); + splita.setOffline(true);//simulate that splita goes offline when it is split splitParents.put(splita, createResult(splita, splitaa,splitab)); CatalogJanitor janitor = spy(new CatalogJanitor(server, services));