[ 
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

Reply via email to