-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/67899/
-----------------------------------------------------------

(Updated July 12, 2018, 9:14 p.m.)


Review request for sentry, Arjun Mishra, kalyan kumar kalvagadda, and Sergio 
Pena.


Bugs: sentry-2299
    https://issues.apache.org/jira/browse/sentry-2299


Repository: sentry


Description (updated)
-------

Sentry client at NameNode does not create entry for external table. When user 
rename an external table with different path, null exception happens. The fix 
is to check if old entry exists or not. If exists, move old paths to new table. 
Otherwise, skip that step.

You can see that in the following function createAuthzObjPath in HMSPaths.java, 
if the path is outside of prefix, no entry is created

    public Entry createAuthzObjPath(List<String> pathElements, String authzObj) 
{
      Entry entry = null;
      Entry prefix = findPrefixEntry(pathElements);
      if (prefix != null) {
        // we only create the entry if is under a prefix, else we ignore it
        entry = createChild(pathElements, EntryType.AUTHZ_OBJECT, authzObj);
      } else {
        if (LOG.isDebugEnabled()) {
          LOG.debug(String.format("%s: createAuthzObjPath(%s, %s): outside of 
prefix, skipping",        <- skip creating entry for external tables
            this, authzObj, pathElements));
        }
      }
      return entry;
    }


Diffs
-----

  
sentry-hdfs/sentry-hdfs-common/src/main/java/org/apache/sentry/hdfs/HMSPaths.java
 3919d60 
  
sentry-hdfs/sentry-hdfs-common/src/test/java/org/apache/sentry/hdfs/TestHMSPaths.java
 20ed97c 


Diff: https://reviews.apache.org/r/67899/diff/1/


Testing
-------

Add new test case for renaming external table with different paths. It passes


Thanks,

Na Li

Reply via email to