You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Ted Yu (JIRA)" <ji...@apache.org> on 2013/03/14 01:16:14 UTC

[jira] [Commented] (HBASE-8097) MetaServerShutdownHandler may potentially keep bumping up DeadServer.numProcessing

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

Ted Yu commented on HBASE-8097:
-------------------------------

super.process() would be skipped in the above case.

In ServerShutdownHandler.process(), the code is structured this way:
{code}
    try {
      try {
        if (this.shouldSplitHlog) {
          LOG.info("Splitting logs for " + serverName);
          this.services.getMasterFileSystem().splitLog(serverName);
        } else {
          LOG.info("Skipping log splitting for " + serverName);
        }
      } catch (IOException ioe) {
        //typecast to SSH so that we make sure that it is the SSH instance that
        //gets submitted as opposed to MSSH or some other derived instance of SSH
        this.services.getExecutorService().submit((ServerShutdownHandler)this);
        this.deadServers.add(serverName);
        throw new IOException("failed log splitting for " +
...
    } finally {
      this.deadServers.finish(serverName);
    }
{code}
Can you use similar structure in MetaServerShutdownHandler ?
                
> MetaServerShutdownHandler may potentially keep bumping up DeadServer.numProcessing
> ----------------------------------------------------------------------------------
>
>                 Key: HBASE-8097
>                 URL: https://issues.apache.org/jira/browse/HBASE-8097
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Jeffrey Zhong
>            Assignee: Jeffrey Zhong
>             Fix For: 0.96.0
>
>
> {code}
>     } catch (IOException ioe) {
>       this.services.getExecutorService().submit(this);
>       this.deadServers.add(serverName);
>       throw new IOException("failed log splitting for " +
>           serverName + ", will retry", ioe);
>     }
> {code}
> this.deadServers.add(serverName); will keep incrementing DeadServer.numProcessing
> We can't get rid of numProcessing by just checking deadServers.size() because deadServers is also used to report some historically failed RSs.

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