You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@sentry.apache.org by "Hadoop QA (JIRA)" <ji...@apache.org> on 2016/04/12 11:21:25 UTC

[jira] [Commented] (SENTRY-1184) Clean up HMSPaths.renameAuthzObject

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

Hadoop QA commented on SENTRY-1184:
-----------------------------------

Here are the results of testing the latest attachment
https://issues.apache.org/jira/secure/attachment/12798226/SENTRY-1184.3.patch against master.

{color:red}Overall:{color} -1 due to an error

{color:red}ERROR:{color} failed to build with patch (exit code 1)

Console output: https://builds.apache.org/job/PreCommit-SENTRY-Build/1454/console

This message is automatically generated.

> Clean up HMSPaths.renameAuthzObject
> -----------------------------------
>
>                 Key: SENTRY-1184
>                 URL: https://issues.apache.org/jira/browse/SENTRY-1184
>             Project: Sentry
>          Issue Type: Bug
>            Reporter: Sravya Tirukkovalur
>            Assignee: Sravya Tirukkovalur
>         Attachments: SENTRY-1184.001-branch-1.5.1.patch, SENTRY-1184.002.patch, SENTRY-1184.1.patch, SENTRY-1184.2.patch, SENTRY-1184.3.patch
>
>
> Currently HMSPaths.renameAuthzObject is being used for multiple cases and logic is not being handled well causing expected behaviors to throw exceptions. This patch makes following changes:
> If oldName == newName, oldPath != newPath. This is treated as regular newName.add(newPath), newName.delete(oldPath), so renameAuthz is not called for this case. Example: Alter table partition rename to partition
> If oldName != newName renameAuthz is called which does the following:
> - If oldPath == newPath =>new_table.add(new_path), new_table.add(old_table_partition_paths), old_table.dropAllPaths. Example: Rename external table
> - oldPath != newPath => new_table.add(new_path), old_table.dropAllPaths. Example: Rename managed table 
> Also, as part of this change made updatePartial and updateFull synchronized on UpdateableAuthzPaths object, as handling partial and full updates concurrently can cause unexpected behavior.
> java.lang.NullPointerException
> at org.apache.sentry.hdfs.HMSPaths.renameAuthzObject(HMSPaths.java:571)
> at org.apache.sentry.hdfs.UpdateableAuthzPaths.applyPartialUpdate(UpdateableAuthzPaths.java:106)
> at org.apache.sentry.hdfs.UpdateableAuthzPaths.updatePartial(UpdateableAuthzPaths.java:75)
> at org.apache.sentry.hdfs.SentryAuthorizationInfo.processUpdates(SentryAuthorizationInfo.java:174)
> at org.apache.sentry.hdfs.SentryAuthorizationInfo.update(SentryAuthorizationInfo.java:131)
> at org.apache.sentry.hdfs.SentryAuthorizationInfo.run(SentryAuthorizationInfo.java:193)



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