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