.../hbase/master/handler/TruncateTableHandler.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/TruncateTableHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/TruncateTableHandler.java index 600ae44..9d29ba5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/TruncateTableHandler.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/TruncateTableHandler.java @@ -70,8 +70,20 @@ public class TruncateTableHandler extends DeleteTableHandler { // 1. Wait because of region in transition waitRegionInTransition(regions); - // 2. Remove table from hbase:meta and HDFS - removeTableData(regions); + try { + // 2. Remove table from hbase:meta and HDFS + removeTableData(regions); + } finally { + AssignmentManager am = this.masterServices.getAssignmentManager(); + + // Clean up regions of the table in RegionStates. + LOG.debug("Removing '" + tableName + "' from region states."); + am.getRegionStates().tableDeleted(tableName); + + // If entry for this table in zk, and up in AssignmentManager, remove it. + LOG.debug("Marking '" + tableName + "' as deleted."); + am.getTableStateManager().setDeletedTable(tableName); + } // ----------------------------------------------------------------------- // PONR: At this point the table is deleted.