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

[jira] [Commented] (HBASE-6151) Master can die if RegionServer throws ServerNotRunningYet

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

Zhihong Yu commented on HBASE-6151:
-----------------------------------

ServerNotRunningYetException should be handled in the last catch block of getCachedConnection():
{code}
    } catch (IOException ioe) {
{code}
                
> Master can die if RegionServer throws ServerNotRunningYet
> ---------------------------------------------------------
>
>                 Key: HBASE-6151
>                 URL: https://issues.apache.org/jira/browse/HBASE-6151
>             Project: HBase
>          Issue Type: Bug
>          Components: ipc
>    Affects Versions: 0.90.7, 0.92.2, 0.96.0, 0.94.1
>            Reporter: Gregory Chanan
>            Assignee: Gregory Chanan
>
> See, for example:
> {noformat}
> 2012-05-23 16:49:22,745 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
> org.apache.hadoop.hbase.ipc.ServerNotRunningException: org.apache.hadoop.hbase.ipc.ServerNotRunningException: Server is not running yet
> 	at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1038)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> 	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> 	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> 	at org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:96)
> 	at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1240)
> 	at org.apache.hadoop.hbase.catalog.CatalogTracker.getCachedConnection(CatalogTracker.java:444)
> 	at org.apache.hadoop.hbase.catalog.CatalogTracker.getMetaServerConnection(CatalogTracker.java:343)
> 	at org.apache.hadoop.hbase.catalog.CatalogTracker.verifyMetaRegionLocation(CatalogTracker.java:540)
> 	at org.apache.hadoop.hbase.master.HMaster.assignRootAndMeta(HMaster.java:474)
> 	at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:412)
> {noformat}
> The HRegionServer calls HBaseServer:
> {code}
>   public void start() {
>     startThreads();
>     openServer();
>   }
> {code}
> but the server can start accepting RPCs once the threads have been started, but if they do, they throw ServerNotRunningException until openServer runs.  We should probably
> 1) Catch the remote exception and retry on the master
> 2) Look into whether the start() behavior of HBaseServer makes any sense.  Why would you start accepting RPCs only to throw back ServerNotRunningException?

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