hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6289) ROOT region doesn't get re-assigned in ServerShutdownHandler if the RS is still working but only the RS's ZK node expires.
Date Thu, 28 Jun 2012 17:24:43 GMT

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

stack commented on HBASE-6289:
------------------------------

@Maryann Patch looks good.  A SSH should not allow the server its handling as a legit .META.
or -ROOT- location so your exclude makes sense.  You need curly braces here or put the return
on same line as the if... to be within our coding convention.

{code}
+    if (exclude != null && exclude.equals(server))
+      return null;
{code}

We can fix this on commit though.

What will happen here if server returned is same as excludes server?

{code}
+  AdminProtocol getRootServerConnection(long timeout, ServerName exclude)
   throws InterruptedException, NotAllMetaRegionsOnlineException, IOException {
-    return getCachedConnection(waitForRoot(timeout));
+    ServerName server = waitForRoot(timeout);
+    if (exclude != null && exclude.equals(server))
+      return null;
+    
+    return getCachedConnection(server);
   }
{code}

We return null and go around again until the RS dies?  That seems fine but maybe we should
log this special handling?  Just a suggestion.
                
> ROOT region doesn't get re-assigned in ServerShutdownHandler if the RS is still working
but only the RS's ZK node expires.
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-6289
>                 URL: https://issues.apache.org/jira/browse/HBASE-6289
>             Project: HBase
>          Issue Type: Bug
>          Components: master
>    Affects Versions: 0.90.6, 0.94.0
>            Reporter: Maryann Xue
>            Assignee: Maryann Xue
>            Priority: Critical
>         Attachments: HBASE-6289.patch
>
>
> The ROOT RS has some network problem and its ZK node expires first, which kicks off the
ServerShutdownHandler. it calls verifyAndAssignRoot() to try to re-assign ROOT. At that time,
the RS is actually still working and passes the verifyRootRegionLocation() check, so the ROOT
region is skipped from re-assignment.
>   private void verifyAndAssignRoot()
>   throws InterruptedException, IOException, KeeperException {
>     long timeout = this.server.getConfiguration().
>       getLong("hbase.catalog.verification.timeout", 1000);
>     if (!this.server.getCatalogTracker().verifyRootRegionLocation(timeout)) {
>       this.services.getAssignmentManager().assignRoot();
>     }
>   }
> After a few moments, this RS encounters DFS write problem and decides to abort. The RS
then soon gets restarted from commandline, and constantly report:
> 2012-06-27 23:13:08,627 DEBUG org.apache.hadoop.hbase.regionserver.HRegionServer: NotServingRegionException;
Region is not online: -ROOT-,,0
> 2012-06-27 23:13:08,627 DEBUG org.apache.hadoop.hbase.regionserver.HRegionServer: NotServingRegionException;
Region is not online: -ROOT-,,0
> 2012-06-27 23:13:08,628 DEBUG org.apache.hadoop.hbase.regionserver.HRegionServer: NotServingRegionException;
Region is not online: -ROOT-,,0
> 2012-06-27 23:13:08,628 DEBUG org.apache.hadoop.hbase.regionserver.HRegionServer: NotServingRegionException;
Region is not online: -ROOT-,,0
> 2012-06-27 23:13:08,630 DEBUG org.apache.hadoop.hbase.regionserver.HRegionServer: NotServingRegionException;
Region is not online: -ROOT-,,0

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

        

Mime
View raw message