[ https://issues.apache.org/jira/browse/HDFS-12873?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16273470#comment-16273470 ]
Rae Marks edited comment on HDFS-12873 at 11/30/17 10:53 PM: ------------------------------------------------------------- Oops, not very descriptive of me. I meant if you try to get the file status of a file using a path containing {{..}} after the 4th index, but I was recalling something different and was incorrect. Please disregard that comment. What I mentioned about ignoring anything after the {{..}} in the 4th index is true though. For example, getFileStatus on {{'/.reserved/.inodes/<y's inode number>/../I/don't/exist}} would return y's parent's info ({{x}}) - it just throws away {{I/don't/exist}}. was (Author: raemarks): Oops, not very descriptive. I meant if you try to get the file status of a file using a path containing {{..}} after the 4th index, but I was recalling something different and was incorrect. Please disregard that comment. What I mentioned about ignoring anything after the {{..}} in the 4th index is true though. For example, getFileStatus on {{'/.reserved/.inodes/<y's inode number>/../I/don't/exist}} would return y's parent's info ({{x}}) - it just throws away {{I/don't/exist}}. > 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: Rae 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: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org