Raeanne J Marks created HDFS-12873:
--------------------------------------
Summary: Creating a '..' directory is possible using inode paths
Key: HDFS-12873
URL: https://issues.apache.org/jira/browse/HDFS-12873
Project: Hadoop HDFS
Issue Type: Bug
Components: hdfs, namenode
Affects Versions: 2.8.0
Environment: Apache NameNode running in a Docker container on a Fedora
25 workstation.
Reporter: Raeanne J Marks
Start with a fresh deployment of HDFS.
1. Mkdirs '/x/y/z'
2. use GetFileInfo to get y's inode number
3. Mkdirs '/.reserved/.inodes/<y's inode number>/z/../foo'
Expectation: The path in step 3 is rejected as invalid (exception thrown) OR
foo would be created under y.
Observation: This created a directory called '..' under z and 'foo' under that
'..' directory instead of consolidating the path to '/x/y/foo' or throwing an
exception. GetListing on '/.reserved/.inodes/<z's inode number>' shows '..',
while GetListing on '/x/y' does not.
Mkdirs INotify events were reported with the following paths, in order:
/x
/x/y
/x/y/z
/x/y/z/..
/x/y/z/../foo
I can also chain these dotdot directories and make them as deep as I want.
Mkdirs works with the following paths appended to the inode path for directory
y: '/z/../../../foo', '/z/../../../../../', '/z/../../../foo/bar/../..' etc,
and it constructs all the '..' directories as if they weren't special names.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]