[ https://issues.apache.org/jira/browse/HADOOP-9739?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13710408#comment-13710408 ]
Xi Fang commented on HADOOP-9739: --------------------------------- A patch is attached. I added a check for the existence of the directory before mkdirs(). > Branch-1-Win TestNNThroughputBenchmark failed > --------------------------------------------- > > Key: HADOOP-9739 > URL: https://issues.apache.org/jira/browse/HADOOP-9739 > Project: Hadoop Common > Issue Type: Bug > Affects Versions: 1-win > Reporter: Xi Fang > Assignee: Xi Fang > Priority: Minor > Fix For: 1-win > > Attachments: HADOOP-9739.1.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