hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Suresh Srinivas (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HADOOP-8139) Path does not allow metachars to be escaped
Date Thu, 08 Mar 2012 19:01:58 GMT

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

Suresh Srinivas commented on HADOOP-8139:

Hadoop currently allows both paths with '\' or '/' as separators and some times '\' is used
as an escape character. This results in issues when the escape characters is interprted as
separator (as this jira describes).

What we need is (as you have proposed):
# Paths with '\' as separator only use '^' as escape character.
# Paths with '/' as separator only use '\' as escape character.

But the main problem is to decipher the intended separator in a path.

Some possible directions for solving this problem:
# Disallow '\' as separator in paths. I believe, Hadoop should choose a format for the path
and not changed based on the OS. This is my preferred solution - has the following issues.
#* This is backward incompatible. I am guessing the impact of this on existing users is minimmal.
# Allow both separators, the approach you have described.
#* An application that uses '\' based path, works from both windows and non windows system,
before this change. With this change, an application needs to use the right path based on
the OS. This could be very confusing to the users.
#* The behavior on Windows on Cygwin and without Cygwin could be very different.

> Path does not allow metachars to be escaped
> -------------------------------------------
>                 Key: HADOOP-8139
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8139
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 0.23.0, 0.24.0
>            Reporter: Daryn Sharp
>            Assignee: Daryn Sharp
>            Priority: Blocker
>         Attachments: HADOOP-8139.patch, HADOOP-8139.patch
> Path converts "\" into "/", probably for windows support?  This means it's impossible
for the user to escape metachars in a path name.  Glob expansion can have deadly results.
> Here are the most egregious examples. A user accidentally creates a path like "/user/me/*/file".
 Now they want to remove it.
> {noformat}"hadoop fs -rmr -skipTrash '/user/me/\*'" becomes...
> "hadoop fs -rmr -skipTrash /user/me/*"{noformat}
> * User/Admin: Nuked their home directory or any given directory
> {noformat}"hadoop fs -rmr -skipTrash '\*'" becomes...
> "hadoop fs -rmr -skipTrash /*"{noformat}
> * User:  Deleted _everything_ they have access to on the cluster
> * Admin: *Nukes the entire cluster*
> Note: FsShell is shown for illustrative purposes, however the problem is in the Path
object, not FsShell.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message