You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-dev@hadoop.apache.org by "zhoushulin (JIRA)" <ji...@apache.org> on 2018/08/28 15:47:00 UTC

[jira] [Created] (HADOOP-15701) The constant used in "getProxy()" in HAAdmin.java should be configurable

zhoushulin created HADOOP-15701:
-----------------------------------

             Summary: The constant used in "getProxy()" in HAAdmin.java should be configurable
                 Key: HADOOP-15701
                 URL: https://issues.apache.org/jira/browse/HADOOP-15701
             Project: Hadoop Common
          Issue Type: Bug
          Components: conf, ha
            Reporter: zhoushulin


The constant value used in getProxy() in HAAdmin.java should be configurable

In HAAdmin.java, the "HAServiceTarget.getProxy()" is used 6 times. In 3 times of usage in method "getAllServiceState()", "getServiceState()" and "checkHealth()", the timeout as the second parameter is configurable (with configuration option "ha.failover-controller.cli-check.rpc-timeout.ms").
{code:java}
  ...
  rpcTimeoutForChecks = conf.getInt(
          CommonConfigurationKeys.HA_FC_CLI_CHECK_TIMEOUT_KEY,
          CommonConfigurationKeys.HA_FC_CLI_CHECK_TIMEOUT_DEFAULT);
{code}
{code:java}
  protected int getAllServiceState() {
      ...
      HAServiceProtocol proto = target.getProxy(getConf(),
            rpcTimeoutForChecks);
      ...
  }  
{code}
{code:java}
  private int checkHealth(final CommandLine cmd)
      throws IOException, ServiceFailedException {
    ...
    HAServiceProtocol proto = resolveTarget(argv[0]).getProxy(
        getConf(), rpcTimeoutForChecks);
    ...
  }
{code}
{code:java}
  private int getServiceState(final CommandLine cmd)
      throws IOException, ServiceFailedException {
    ...
    HAServiceProtocol proto = resolveTarget(argv[0]).getProxy(
        getConf(), rpcTimeoutForChecks);
    ...
  }
{code}
However, the other 3 times of usage is not configurable in method "transitionToActive()", "isOtherTargetNodeActive()", and "transitionToStandby()". The constants used in "HAServiceTarget.getProxy()" in these three method are 0, 5000, and 0. 
{code:java}
private int transitionToActive(final CommandLine cmd)
      throws IOException, ServiceFailedException {
    ...
    HAServiceProtocol proto = target.getProxy(
        getConf(), 0);
    ...
}
{code}
{code:java}
private boolean isOtherTargetNodeActive(String targetNodeToActivate, boolean forceActive)
      throws IOException  {
    ...
    HAServiceProtocol proto = target.getProxy(getConf(), 5000);
    ...
}
{code}
{code:java}
private int transitionToStandby(final CommandLine cmd)
      throws IOException, ServiceFailedException {
    ...
    HAServiceProtocol proto = target.getProxy(
        getConf(), 0);
    ...
}
{code}
I think this three constant should also be configurable, since there are no difference from the former ones.

 

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-dev-help@hadoop.apache.org