hadoop-common-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HADOOP-10957) The globber will sometimes erroneously return a permission denied exception when there is a non-terminal wildcard
Date Tue, 12 Aug 2014 22:52:12 GMT

     [ https://issues.apache.org/jira/browse/HADOOP-10957?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Colin Patrick McCabe updated HADOOP-10957:
------------------------------------------

    Attachment: HADOOP-10957.002.patch

v1 of this patch tried to remove the code described by this comment:
{code}
// If we get back only one result, this could be either a listing
// of a directory with one entry, or it could reflect the fact
// that what we listed resolved to a file.
//
// Unfortunately, we can't just compare the returned paths to
// figure this out.  Consider the case where you have /a/b, where
// b is a symlink to "..".  In that case, listing /a/b will give
// back "/a/b" again.  If we just went by returned pathname, we'd
// incorrectly conclude that /a/b was a file and should not match
// /a/*/*.  So we use getFileStatus of the path we just listed to
// disambiguate.
 {code}

Unfortunately, removing this code isn't possible.  In the presence of symlinks, the result
of {{listStatus}} is simply ambiguous when it returns only one item.  Comparing paths won't
work, because of the way symlinks play with paths.  The only way around this would be adding
a new RPC (or a new option to the old {{listStatus}} RPC) that would let us know whether we
listed a directory or file.

Anyway, v2 of the patch is super minimal.  It basically just adds a fix for the case where
we tried to recurse into a file when handling a glob.  I also took the liberty of fixing two
lines that had bad indentation in Globber.java, and avoiding the "no groups found for user"
spew by adding this:

{code}
-      UserGroupInformation.createRemoteUser("myuser");
+    UserGroupInformation.createUserForTesting("myuser",
+        new String[] { "mygroup" });
{code}

> The globber will sometimes erroneously return a permission denied exception when there
is a non-terminal wildcard
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-10957
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10957
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 2.3.0
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>         Attachments: HADOOP-10957.001.patch, HADOOP-10957.002.patch
>
>
> The globber will sometimes erroneously return a permission denied exception when there
is a non-terminal wildcard.  The existing unit tests don't catch this, because it doesn't
happen for superusers.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message