[ https://issues.apache.org/jira/browse/HDFS-9387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15007898#comment-15007898 ]
Hudson commented on HDFS-9387: ------------------------------ SUCCESS: Integrated in Hadoop-Yarn-trunk #1406 (See [https://builds.apache.org/job/Hadoop-Yarn-trunk/1406/]) HDFS-9387. Fix namenodeUri parameter parsing in NNThroughputBenchmark. (xyao: rev 2701f2d2558f3ade879539f3f7bedf749709f2f1) * hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/NNThroughputBenchmark.java * hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt > Fix namenodeUri parameter parsing in NNThroughputBenchmark > ---------------------------------------------------------- > > Key: HDFS-9387 > URL: https://issues.apache.org/jira/browse/HDFS-9387 > Project: Hadoop HDFS > Issue Type: Bug > Components: test > Reporter: Mingliang Liu > Assignee: Mingliang Liu > Fix For: 2.8.0 > > Attachments: HDFS-9387.000.patch > > > 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)