Andrew Wang created HDFS-10832:
----------------------------------

             Summary: 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
            Priority: Critical


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-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to