[
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)