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

Colin Patrick McCabe commented on HADOOP-9761:
----------------------------------------------

OK, good.  So basically this boils down to removing unnecessary checks that 
were hampering {{ViewFileSystem}}-- that were already being done in 
{{getPathName}}, etc.

{code}
         public Void next(final FileSystem fs, final Path p)
             throws IOException {
-          // Since we know it's this DFS for both, can just call doCall again
+          // Should just throw an error in FileSystem#checkPath
           return doCall(p);
         }
{code}

I think the comment should be something more like "if the new path is in a 
different filesystem, doCall will throw an exception."  "Should just throw an 
error" implies that it always fails, which definitely isn't true... if the 
symlink is to something on the same FS.
                
> ViewFileSystem#rename fails when using DistributedFileSystem
> ------------------------------------------------------------
>
>                 Key: HADOOP-9761
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9761
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: viewfs
>    Affects Versions: 3.0.0, 2.1.0-beta
>            Reporter: Andrew Wang
>            Assignee: Andrew Wang
>         Attachments: 0001-HADOOP-9761.004.patch, hadoop-9761-1.patch, 
> hadoop-9761-1.patch, hadoop-9761-2.patch
>
>
> ViewFileSystem currently passes unqualified paths (no scheme or authority) to 
> underlying FileSystems when doing a rename. DistributedFileSystem symlink 
> support added in HADOOP-9418 needs to qualify and check rename sources and 
> destinations since cross-filesystem renames aren't supported, so this breaks 
> in the following way
> - Default FS URI is configured to viewfs://<viewfs>
> - When doing a rename, ViewFileSystem checks to make sure both src and dst 
> FileSystems are the same (which they are, both in same DFS), and then calls 
> DistributedFileSystem#rename with unqualified "remainder" paths
> - Since these paths are unqualified, DFS qualifies them with the default FS 
> to check that it can do the rename. This turns it into 
> viewfs://<viewfs>/<path>
> - Since viewfs://<viewfs> is not the DFS's URI, DFS errors out the rename.

--
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