You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Steve Loughran (JIRA)" <ji...@apache.org> on 2014/01/02 12:23:51 UTC

[jira] [Commented] (HADOOP-10176) swiftfs doesn't correctly handle object names starting with slash

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

Steve Loughran commented on HADOOP-10176:
-----------------------------------------

This one is going to be trouble. There's no expectation that "/" can be in a path, or that the empty string can be a path, so "//" isn't a valid filename or path to a subdir under root.

We could be ruthless and say "don't" -you can't create paths like this from Hadoop itself, after all.
Even so, some recognition of duplicates is probably useful.

How about on a directory list, if an entry of the specific name is found, its somehow merged in or flagged as a problem?

> swiftfs doesn't correctly handle object names starting with slash
> -----------------------------------------------------------------
>
>                 Key: HADOOP-10176
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10176
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 2.3.0
>            Reporter: David Dobbins
>            Priority: Minor
>
> When objects are created in swift prefixed by a slash, swiftfs does not correctly expose the implied directory structure.  For example, given a container with the following objects:
> /foo
> /foo/1
> /foo/2
> teradata
> teradata/part-m
> teradata/part-m-00000
> teradata/part-m-00001
> A GET request against that container will return the list above.  A 'hadoop fs -ls swift://container.service/' will return the following:
> drwxrwxrwx   -          0 2013-12-19 15:49 /foo
> drwxrwxrwx   -          0 2013-12-19 15:06 /foo/1
> drwxrwxrwx   -          0 2013-12-19 15:09 /foo/2
> drwxrwxrwx   -          0 2013-12-04 04:11 /teradata
> Additionally, if an object named 'foo' is also created, where a GET will return:
> /foo
> /foo/1
> /foo/2
> foo
> rcfile
> teradata
> teradata/part-m
> teradata/part-m-00000
> teradata/part-m-00001
> then 'hadoop fs -ls swift://container.service/' will return the following:
> drwxrwxrwx   -          0 2013-12-19 15:49 /foo
> drwxrwxrwx   -          0 2013-12-19 15:06 /foo/1
> drwxrwxrwx   -          0 2013-12-19 15:09 /foo/2
> drwxrwxrwx   -          0 2013-12-19 19:24 /foo
> drwxrwxrwx   -          0 2013-12-04 04:11 /teradata
> which appears to have a duplicate object "/foo".



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)