[
https://issues.apache.org/jira/browse/HBASE-10215?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
rajeshbabu updated HBASE-10215:
-------------------------------
Attachment: HBASE-10215_94.patch
by mistake previously uploaded trunk patch again.
This is 0.94 patch.
> TableNotFoundException should be thrown after removing stale znode in ETH
> -------------------------------------------------------------------------
>
> Key: HBASE-10215
> URL: https://issues.apache.org/jira/browse/HBASE-10215
> Project: HBase
> Issue Type: Bug
> Components: master
> Affects Versions: 0.96.1, 0.94.14
> Reporter: rajeshbabu
> Assignee: rajeshbabu
> Priority: Minor
> Fix For: 0.98.0, 0.94.16, 0.96.2, 0.99.0
>
> Attachments: HBASE-10215.patch, HBASE-10215_94.patch,
> HBASE-10215_v2.patch, HBASE-10215_v2.patch
>
>
> 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.
> {code}
> // 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.");
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)