Repository: incubator-impala
Updated Branches:
  refs/heads/master f0065d376 -> 5089aecdd


IMPALA-5420: Skip ACL fetch if the acl bit is not set.

Helps avoiding an RPC to NN and unnecessary memory churn on the
Catalog server.

Change-Id: I96ff681fe2dddb7b777758cc49a66cc5eb741b4d
Reviewed-on: http://gerrit.cloudera.org:8080/7071
Reviewed-by: Bharath Vissapragada <[email protected]>
Tested-by: Impala Public Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/bf58f111
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/bf58f111
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/bf58f111

Branch: refs/heads/master
Commit: bf58f111699662705838e0c748cb135d1750ec76
Parents: f0065d3
Author: Bharath Vissapragada <[email protected]>
Authored: Fri Jun 2 18:02:10 2017 -0700
Committer: Impala Public Jenkins <[email protected]>
Committed: Tue Jun 6 02:56:04 2017 +0000

----------------------------------------------------------------------
 .../apache/impala/util/FsPermissionChecker.java | 21 +++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/bf58f111/fe/src/main/java/org/apache/impala/util/FsPermissionChecker.java
----------------------------------------------------------------------
diff --git a/fe/src/main/java/org/apache/impala/util/FsPermissionChecker.java 
b/fe/src/main/java/org/apache/impala/util/FsPermissionChecker.java
index 579091c..136c525 100644
--- a/fe/src/main/java/org/apache/impala/util/FsPermissionChecker.java
+++ b/fe/src/main/java/org/apache/impala/util/FsPermissionChecker.java
@@ -284,17 +284,20 @@ public class FsPermissionChecker {
     Preconditions.checkNotNull(fs);
     Preconditions.checkNotNull(path);
     AclStatus aclStatus = null;
-    try {
-      aclStatus = fs.getAclStatus(path);
-    } catch (AclException ex) {
-      if (LOG.isTraceEnabled()) {
-        LOG.trace(
-            "No ACLs retrieved, skipping ACLs check (HDFS will enforce ACLs)", 
ex);
+    FileStatus fileStatus = fs.getFileStatus(path);
+    if (fileStatus.getPermission().getAclBit()) {
+      try {
+        aclStatus = fs.getAclStatus(path);
+      } catch (AclException ex) {
+        if (LOG.isTraceEnabled()) {
+          LOG.trace(
+              "No ACLs retrieved, skipping ACLs check (HDFS will enforce 
ACLs)", ex);
+        }
+      } catch (UnsupportedOperationException ex) {
+        if (LOG.isTraceEnabled()) LOG.trace("No ACLs retrieved, unsupported", 
ex);
       }
-    } catch (UnsupportedOperationException ex) {
-      if (LOG.isTraceEnabled()) LOG.trace("No ACLs retrieved, unsupported", 
ex);
     }
-    return new Permissions(fs.getFileStatus(path), aclStatus);
+    return new Permissions(fileStatus, aclStatus);
   }
 
   /**

Reply via email to