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

Zhou wenjian commented on HBASE-6473:
-------------------------------------

@Jimmy Xiang
the issue appears due to the the check condition of deletetable. 
when we deletetable, we first try to check if the zk state is disabled, and 
then check if the regions online is not in rit. For some reason disabled state 
is set but there is region still being unassigned, in that case the check of 
delete table shipps,  and it will delete the table and zk state , that will 
cause the region being unassigned to assign again.

In the patch I give a strictly check to deleting table. If there is region 
disabled but still online, we will wait for the region offline, after that we 
can delete table, and this case will never appear again


                
> deletedtable is not deleted completely, some region may be still online
> -----------------------------------------------------------------------
>
>                 Key: HBASE-6473
>                 URL: https://issues.apache.org/jira/browse/HBASE-6473
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.94.0
>            Reporter: zhou wenjian
>             Fix For: 0.96.0, 0.94.2
>
>         Attachments: HBASE-6473-trunk.patch
>
>
> consider such Scenario:
> we have a table called T1, which has 1 regions: A 
> 1. move A from rs1 to rs2,and A is now closed
> 2. disable T1,
> 3. delete  T1.
> when we disable T1, disable handler will just set the zk to disabled and A 
> will still be assigned. when Ais opened, A in transition will be clean out. 
> At that time, Deletetable found it is safe to delete all regions and table in 
> meta and fs , it will also delete the zk node of T1.
> {code}
> while (System.currentTimeMillis() < done) {
>         AssignmentManager.RegionState rs = am.isRegionInTransition(region);
>         if (rs == null) break;
>         Threads.sleep(waitingTimeForEvents);
>         LOG.debug("Waiting on  region to clear regions in transition; " + rs);
>       }
>       if (am.isRegionInTransition(region) != null) {
>         throw new IOException("Waited hbase.master.wait.on.region (" +
>           waitTime + "ms) for region to leave region " +
>           region.getRegionNameAsString() + " in transitions");
>       }
> {code}
> however A is still being unassigned, when it finished closed the A,it finds 
> that the disabled state in zk is deleted, and then A will be assigned again.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to