hadoop-hdfs-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mingliang Liu (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HDFS-9387) Parse namenodeUri parameter only once in NNThroughputBenchmark$OperationStatsBase#verifyOpArgument()
Date Thu, 05 Nov 2015 23:19:27 GMT
Mingliang Liu created HDFS-9387:
-----------------------------------

             Summary: Parse namenodeUri parameter only once in NNThroughputBenchmark$OperationStatsBase#verifyOpArgument()
                 Key: HDFS-9387
                 URL: https://issues.apache.org/jira/browse/HDFS-9387
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: namenode
            Reporter: Mingliang Liu
            Assignee: Mingliang Liu


In {{NNThroughputBenchmark$OperationStatsBase#verifyOpArgument()}}, the   {{namenodeUri}}
is always parsed from {{-namenode}} argument. This works just fine if the {{-op}} parameter
is not {{all}}, as the single benchmark will need to parse the {{namenodeUri}} from args anyway.

When the {{-op}} is {{all}}, namely all sub-benchmark will run, multiple sub-benchmark will
call the {{verifyOpArgument()}} method. In this case, the first sub-benchmark reads the {{namenode}}
argument and removes it from args. The other sub-benchmarks will thereafter read {{null}}
value since the argument is removed. This contradicts the intension of providing {{namenode}}
for all sub-benchmarks.
{code:title=current code}
      try {
        namenodeUri = StringUtils.popOptionWithArgument("-namenode", args);
      } catch (IllegalArgumentException iae) {
        printUsage();
      }
{code}

The fix is to parse the {{namenodeUri}}, which is shared by all sub-benchmarks, from {{-namenode}}
argument only once. This follows the convention of parsing other global arguments in {{OperationStatsBase#verifyOpArgument()}}.
{code:title=simple fix}
      if (args.indexOf("-namenode") >= 0) {
        try {
          namenodeUri = StringUtils.popOptionWithArgument("-namenode", args);
        } catch (IllegalArgumentException iae) {
          printUsage();
        }
      }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message