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

ramkrishna.s.vasudevan commented on HBASE-5571:
-----------------------------------------------

Handling disabling when nodeDeleted is needed as we try doing in 
SplitRegionHandler.

{code}
catch (NotServingRegionException nsre) {
       LOG.info("Server " + server + " returned " + nsre + " for " +
         region.getRegionNameAsString());
-      // Presume that master has stale data.  Presume remote side just split.
-      // Presume that the split message when it comes in will fix up the 
master's
-      // in memory cluster state.
+      RegionState regionState = regionsInTransition.get(encodedName);
+      if (regionState != null
+          && (regionState.isSplitting() || regionState.isSplit())) {
+        LOG.info("Region " + region.getRegionNameAsString()
+            + " is splitting, return");
+        return;
+      } else {
+        cancelClosingRegionIfDisabling(region);
+      }
{code}
Is this the correct place to add the code.  I feel NSRE will be a remote 
exception and this check should come in the below catch(Throwable) where we 
check for NSRE.
I remember happening lik that when i was working on some earlier issues.  
Correct me if am wrong.  BTW, thanks for the patch.
                
> Table will be disabling forever
> -------------------------------
>
>                 Key: HBASE-5571
>                 URL: https://issues.apache.org/jira/browse/HBASE-5571
>             Project: HBase
>          Issue Type: Bug
>          Components: master, regionserver
>            Reporter: chunhui shen
>            Assignee: chunhui shen
>         Attachments: BASE-5571v2.patch, HBASE-5571.patch
>
>
> If we restart master when it is disabling one table, the table will be 
> disabling forever.
> In current logic, Region CLOSE RPC will always returned 
> NotServingRegionException because RS has already closed the region before we 
> restart master. So table will be disabling forever because the region will in 
> RIT all along.
> In another case, when AssignmentManager#rebuildUserRegions(), it will put 
> parent regions to AssignmentManager.regions, so we can't close these parent 
> regions until it is purged by CatalogJanitor if we execute disabling the 
> table.

--
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