[ https://issues.apache.org/jira/browse/HDFS-5003?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xi Fang updated HDFS-5003: -------------------------- Fix Version/s: 2.1.0-beta 1-win 3.0.0 Status: Patch Available (was: In Progress) > TestNNThroughputBenchmark failed caused by existing directories > --------------------------------------------------------------- > > Key: HDFS-5003 > URL: https://issues.apache.org/jira/browse/HDFS-5003 > Project: Hadoop HDFS > Issue Type: Bug > Components: test > Affects Versions: 3.0.0, 1-win, 2.1.0-beta > Reporter: Xi Fang > Assignee: Xi Fang > Priority: Minor > Fix For: 3.0.0, 1-win, 2.1.0-beta > > Attachments: HADOOP-9739.1.patch, HADOOP-9739.1.trunk.patch > > > This test failed on both Windows and Linux. > Here is the error information. > Testcase: testNNThroughput took 36.221 sec > Caused an ERROR > NNThroughputBenchmark: cannot mkdir > D:\condor\condor\build\test\dfs\hosts\exclude > java.io.IOException: NNThroughputBenchmark: cannot mkdir > D:\condor\condor\build\test\dfs\hosts\exclude > at > org.apache.hadoop.hdfs.server.namenode.NNThroughputBenchmark.<init>(NNThroughputBenchmark.java:111) > at > org.apache.hadoop.hdfs.server.namenode.NNThroughputBenchmark.runBenchmark(NNThroughputBenchmark.java:1168) > at > org.apache.hadoop.hdfs.server.namenode.TestNNThroughputBenchmark.testNNThroughput(TestNNThroughputBenchmark.java:38) > This test may not fail for the first run, but will fail for the second one. > The root cause is in the constructor of NNThroughputBenchmark > {code} > NNThroughputBenchmark(Configuration conf) throws IOException, LoginException > { > ... > config.set("dfs.hosts.exclude", "${hadoop.tmp.dir}/dfs/hosts/exclude"); > File excludeFile = new File(config.get("dfs.hosts.exclude", "exclude")); > if(! excludeFile.exists()) { > if(!excludeFile.getParentFile().mkdirs()) > throw new IOException("NNThroughputBenchmark: cannot mkdir " + > excludeFile); > } > new FileOutputStream(excludeFile).close(); > {code} > excludeFile.getParentFile() may already exist, then > excludeFile.getParentFile().mkdirs() will return false, which however is not > an expected behavior. -- 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