You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Nick Dimiduk (JIRA)" <ji...@apache.org> on 2012/12/06 23:05:10 UTC

[jira] [Updated] (HBASE-6469) Failure on enable/disable table will cause table state in zk to be left as enabling/disabling until master is restart

     [ https://issues.apache.org/jira/browse/HBASE-6469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nick Dimiduk updated HBASE-6469:
--------------------------------

    Attachment: 6469-expose-force.patch

This completes the patch started in [review 8333|https://reviews.apache.org/r/8333/]. It exposes a new "force" option to the table enable and disable operators in the AdminMasterProtocol. It also updates the existing TestAdmin coverage of the enable and disable paths.

Most of the change is serialization noise. The new work happens in the two Handler classes.
                
> Failure on enable/disable table will cause table state in zk to be left as enabling/disabling until master is restart
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6469
>                 URL: https://issues.apache.org/jira/browse/HBASE-6469
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.2, 0.96.0
>            Reporter: Enis Soztutar
>            Assignee: Nick Dimiduk
>             Fix For: 0.96.0, 0.94.4
>
>         Attachments: 6469-expose-force.patch
>
>
> 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. 
> {code}
>     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);
>     }
> {code}
> 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. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira