Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Invalid
-
0.94.6
-
None
-
None
-
Introduces new 'force' option for enabling and disabling tables. Allows an advanced user to impose a change on table status, ie, such as after running hbck.
Description
In Enable/DisableTableHandler code, if something goes wrong in handling, the table state in zk is left as ENABLING / DISABLING. After that we cannot force any more action from the API or CLI, and the only recovery path is restarting the master.
if (done) { // Flip the table to enabled. this.assignmentManager.getZKTable().setEnabledTable( this.tableNameStr); LOG.info("Table '" + this.tableNameStr + "' was successfully enabled. Status: done=" + done); } else { LOG.warn("Table '" + this.tableNameStr + "' wasn't successfully enabled. Status: done=" + done); }
Here, if done is false, the table state is not changed. There is also no way to set skipTableStateCheck from cli / api.
We have run into this issue a couple of times before.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-8233 Poke the ZKTable cache and let the system reload cached information
- Closed
- relates to
-
HBASE-6484 Make AssignmentManger#enablingTables and disablintTables local variables
- Closed