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)