[
https://issues.apache.org/jira/browse/HADOOP-20063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HADOOP-20063:
------------------------------------
Labels: pull-request-available (was: )
> FileContext.Util#copy does not reject copying a directory into itself or its
> subdirectory when both paths have the same authority
> ---------------------------------------------------------------------------------------------------------------------------------
>
> Key: HADOOP-20063
> URL: https://issues.apache.org/jira/browse/HADOOP-20063
> Project: Hadoop Common
> Issue Type: Bug
> Components: fs
> Reporter: Yang Jie
> Priority: Major
> Labels: pull-request-available
>
> FileContext.Util#copy calls checkDependencies() to reject copying a directory
> into itself or into one of its subdirectories, but only when isSameFS() says
> the two paths are on the same file system. isSameFS() returns {{scheme equal
> && !(both authorities non-null && equal)}}, which is false exactly when the
> authorities are equal. Since HADOOP-6906, which made the old
> {{getAuthority().equals()}} check null-safe and inverted it in the same
> change, the check only works for paths without an authority, such as local
> paths.
> On HDFS, {{fc.util().copy(new Path("/a"), new Path("/a/b"))}} creates /a/b,
> lists /a (which now includes b) and recurses into /a/b/b, /a/b/b/b and so on,
> until the NameNode rejects a path that is too deep. Files listed before b are
> copied again at every level. {{copy(dir, dir, true, true)}} overwrites each
> file with itself and then deletes the source directory.
> The fix compares the authorities with {{Objects.equals}}. Two null
> authorities still count as the same file system, and copies between clusters
> are still allowed.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]