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

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

{code}
+    // Assumes path belongs to this FileSystem.
+    // Callers are responsible for checking this
+    FileSystem fs = filesys;
{code}

Thanks for the explanation about this.  Can we add a comment like "this is 
validated in {{FileSystem#checkPath}}"?

{code}
+          if (fs.getUri() != getUri()) {
+            throw new IOException("Renames across FileSystems not supported");
+          }
{code}

We should be using {{equals}} here, not {{!=}}.

+1 once those are addressed.
                
> 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
>
>
> 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