Details
Description
Lets suppose master went down while creating table then znode will be left in ENABLING state. Master to recover them on restart.
If there are no meta entries for the table.
While recovering the table we are checking whether table exists in meta or not, if not we are removing the znode. After removing znode we need to throw TableNotFoundException. Presently not throwing the exception so the znode will be recrated. It will be stale forever. Even on master restart we cannot delete. We cannot create the table with same name also.
// Check if table exists if (!MetaReader.tableExists(catalogTracker, tableName)) { // retainAssignment is true only during recovery. In normal case it is false if (!this.skipTableStateCheck) { throw new TableNotFoundException(tableName); } try { this.assignmentManager.getZKTable().removeEnablingTable(tableName, true); } catch (KeeperException e) { // TODO : Use HBCK to clear such nodes LOG.warn("Failed to delete the ENABLING node for the table " + tableName + ". The table will remain unusable. Run HBCK to manually fix the problem."); } }