hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raeanne J Marks (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (HDFS-12873) Creating a '..' directory is possible using inode paths
Date Thu, 30 Nov 2017 21:30:00 GMT

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

Raeanne J Marks edited comment on HDFS-12873 at 11/30/17 9:29 PM:
------------------------------------------------------------------

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, {{'/.reserved/.inodes/<y's inode number>/../I/don't/exist}} would return
y's parent's inode number ({{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, {{'/.reserved/.inodes/<y's inode number>/../I/don't/exist}} would return
y's parent's inode number (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: 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: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message