[ 
https://issues.apache.org/jira/browse/HADOOP-8589?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13415460#comment-13415460
 ] 

Andrey Klochkov commented on HADOOP-8589:
-----------------------------------------

The problem with the current code is that those 2 links can point to nested 
directories. In case of tests being run on a Jenkins master in it's default 
configuration one of the links the code will try to create will point to "/var" 
and another to "/var/lib", and the creation of the second link will fail with 
"Path /var already exists as dir; cannot create link". I'm proposing to use 
just the first component of the path for both links, i.e. cut off everything 
after "/var" in my example. It's already being done for the test link, and my 
patch is adding the same logic for the home link.
                
> ViewFs tests fail when tests dir is under Jenkins home dir
> ----------------------------------------------------------
>
>                 Key: HADOOP-8589
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8589
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs, test
>    Affects Versions: 0.23.1, 2.0.0-alpha
>            Reporter: Andrey Klochkov
>            Assignee: Andrey Klochkov
>         Attachments: HADOOP-8859.patch
>
>
> TestFSMainOperationsLocalFileSystem fails in case when the test root 
> directory is under the user's home directory, and the user's home dir is 
> deeper than 2 levels from /. This happens with the default 1-node 
> installation of Jenkins. 
> This is the failure log:
> {code}
> org.apache.hadoop.fs.FileAlreadyExistsException: Path /var already exists as 
> dir; cannot create link here
>       at org.apache.hadoop.fs.viewfs.InodeTree.createLink(InodeTree.java:244)
>       at org.apache.hadoop.fs.viewfs.InodeTree.<init>(InodeTree.java:334)
>       at 
> org.apache.hadoop.fs.viewfs.ViewFileSystem$1.<init>(ViewFileSystem.java:167)
>       at 
> org.apache.hadoop.fs.viewfs.ViewFileSystem.initialize(ViewFileSystem.java:167)
>       at 
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2094)
>       at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:79)
>       at 
> org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2128)
>       at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2110)
>       at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:290)
>       at 
> org.apache.hadoop.fs.viewfs.ViewFileSystemTestSetup.setupForViewFileSystem(ViewFileSystemTestSetup.java:76)
>       at 
> org.apache.hadoop.fs.viewfs.TestFSMainOperationsLocalFileSystem.setUp(TestFSMainOperationsLocalFileSystem.java:40)
> ...
> Standard Output
> 2012-07-11 22:07:20,239 INFO  mortbay.log (Slf4jLog.java:info(67)) - Home dir 
> base /var/lib
> {code}
> The reason for the failure is that the code tries to mount links for both 
> "/var" and "/var/lib", and it fails for the 2nd one as the "/var" is mounted 
> already.
> The fix was provided in HADOOP-8036 but later it was reverted in HADOOP-8129.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to