hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "rajeshbabu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6469) Failure on enable/disable table will cause table state in zk to be left as enabling/disabling until master is restart
Date Sat, 09 Feb 2013 14:19:14 GMT

    [ https://issues.apache.org/jira/browse/HBASE-6469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13575174#comment-13575174
] 

rajeshbabu commented on HBASE-6469:
-----------------------------------

@Ram,
How the patch works is :
1) TableStateUpdater Chore thread will keep observes any table in partial state(wakeup for
every two minutes- we can configure this).
2) If enable/disable of a table fails it will be added to partial state tables map in TableStateUpdater.

3) In case of ENABLING table it will check whether all regions of the table are online or
not.
If online then table state will be changed to ENABLED.
4) In case of DISABLING table it will check whether all regions of the table are offline or
not.
if offline then table state will be changed to DISABLED.

bq.So once we say HBCK -fixAssignments, then we need to see if the region assignment is done
and then forcefully enable/disable the table state.
If some problems in assignment/unassignment HBCK -fixAssignments can fix it but user need
to call forceful enable/disable again.But with this patch  table state will be updated automatically
once online regions count of a table reaches expected region count in the map(expected region
count is  number of regions in case of ENABLE and 0 in case of DISABLE)

Any problem you see in this approach Ram?
                
> 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.6
>
>         Attachments: 6469-expose-force-r3.patch, HBASE-6469.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

Mime
View raw message