[ 
https://issues.apache.org/jira/browse/HDFS-10832?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15478049#comment-15478049
 ] 

Hudson commented on HDFS-10832:
-------------------------------

SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #10421 (See 
[https://builds.apache.org/job/Hadoop-trunk-Commit/10421/])
HDFS-10832. Propagate ACL bit and isEncrypted bit in HttpFS FileStatus (wang: 
rev cba973f036a2c8fcc21a5826b8306247ec154c7b)
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-httpfs/src/main/java/org/apache/hadoop/fs/http/server/FSOperations.java
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-httpfs/src/test/java/org/apache/hadoop/test/TestHdfsHelper.java
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-httpfs/src/main/java/org/apache/hadoop/fs/http/client/HttpFSFileSystem.java
* (edit) 
hadoop-hdfs-project/hadoop-hdfs-httpfs/src/test/java/org/apache/hadoop/fs/http/client/BaseTestHttpFSWith.java


> Propagate ACL bit and isEncrypted bit in HttpFS FileStatus permissions
> ----------------------------------------------------------------------
>
>                 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
>             Fix For: 2.9.0, 3.0.0-alpha2
>
>         Attachments: HDFS-10823.001.patch, HDFS-10832.002.patch, 
> HDFS-10832.003.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-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to