hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Wang (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-10832) HttpFS does not use the ephemeral ACL bit introduced in HDFS-6326
Date Fri, 02 Sep 2016 01:10:21 GMT

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

Andrew Wang updated HDFS-10832:
-------------------------------
    Attachment: HDFS-10823.001.patch

Patch attached. This is actually a bit worse than I thought. The acl bit wasn't being read
by HttpFSFileSystem, which was missed since the unit tests only do getAclStatus.

We also missed adding support for the encBit to HttpFS on both the server and client, so I
forward that along as well.

> HttpFS does not use the ephemeral ACL bit introduced in HDFS-6326
> -----------------------------------------------------------------
>
>                 Key: HDFS-10832
>                 URL: https://issues.apache.org/jira/browse/HDFS-10832
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: httpfs
>    Affects Versions: 2.6.4
>            Reporter: Andrew Wang
>            Assignee: Andrew Wang
>            Priority: Critical
>         Attachments: HDFS-10823.001.patch
>
>
> HDFS-6326 introduced an ephemeral ACL bit in FSPermission to avoid doing extra getAclStatus
calls during listStatus.
> Parsing this extra bit was not carried over to HttpFS. Currently, it tries to detect
ACLs being disabled by catching exceptions (somewhat brittle). When ACLs are on, it will do
a getAclStatus per FileStatus object. This could have severe performance implications.
> Snippet from FSOperations:
> {code}
>       /*
>        * For each FileStatus, attempt to acquire an AclStatus.  If the
>        * getAclStatus throws an exception, we assume that ACLs are turned
>        * off entirely and abandon the attempt.
>        */
>       boolean useAcls = true;   // Assume ACLs work until proven otherwise
>       for (int i = 0; i < fileStatuses.length; i++) {
>         if (useAcls) {
>           try {
>             aclStatus = fs.getAclStatus(fileStatuses[i].getPath());
>           } catch (AclException e) {
>             /* Almost certainly due to an "ACLs not enabled" exception */
>             aclStatus = null;
>             useAcls = false;
>           } catch (UnsupportedOperationException e) {
>             /* Ditto above - this is the case for a local file system */
>             aclStatus = null;
>             useAcls = false;
>           }
>         }
>         statusPairs[i] = new StatusPair(fileStatuses[i], aclStatus);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-help@hadoop.apache.org


Mime
View raw message