From 2baba77802406e5ebafc1a945a18a38a5a3a403e Mon Sep 17 00:00:00 2001 From: Esteban Gutierrez Date: Fri, 21 Jul 2017 14:13:13 -0500 Subject: [PATCH] HBASE-18025 CatalogJanitor should collect outdated RegionStates from the AM --- .../java/org/apache/hadoop/hbase/master/CatalogJanitor.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java index ba92c765e1..8e8475ff30 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/CatalogJanitor.java @@ -234,6 +234,9 @@ public class CatalogJanitor extends ScheduledChore { */ int scan() throws IOException { int result = 0; + ServerManager sm = this.services.getServerManager(); + AssignmentManager am = this.services.getAssignmentManager(); + try { if (!alreadyRunning.compareAndSet(false, true)) { LOG.debug("CatalogJanitor already running"); @@ -265,6 +268,11 @@ public class CatalogJanitor extends ScheduledChore { result++; } } + // Remove from in-memory states + am.getRegionStates().deleteRegion(regionA); + am.getRegionStates().deleteRegion(regionB); + sm.removeRegion(regionA); + sm.removeRegion(regionB); } /** * clean split parents @@ -291,6 +299,9 @@ public class CatalogJanitor extends ScheduledChore { parentNotCleaned.add(daughters.getFirst().getEncodedName()); parentNotCleaned.add(daughters.getSecond().getEncodedName()); } + // Remove from in-memory states + am.getRegionStates().deleteRegion(e.getKey()); + sm.removeRegion(e.getKey()); } return result; } finally { -- 2.13.3