[
https://issues.apache.org/jira/browse/RANGER-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17603469#comment-17603469
]
Ramachandran edited comment on RANGER-3903 at 11/8/22 3:57 AM:
---------------------------------------------------------------
The review is available here -[https://reviews.apache.org/r/74112/]
cc >> [[email protected]] [~abhayk]
was (Author: JIRAUSER295265):
The review is available here -[https://reviews.apache.org/r/74112/]
cc >> [[email protected]] [~abhayk]
> Bug in RangerPolicyDeltaUtil--> applyDeltas method
> --------------------------------------------------
>
> Key: RANGER-3903
> URL: https://issues.apache.org/jira/browse/RANGER-3903
> Project: Ranger
> Issue Type: Improvement
> Components: Ranger
> Affects Versions: 3.0.0
> Reporter: Ramachandran
> Assignee: Ramachandran
> Priority: Major
> Attachments:
> 0001-RANGER-3903-Bug-in-RangerPolicyDeltaUtil-applyDeltas.patch,
> image-2022-11-08-09-22-05-188.png
>
>
> After going through the below code snippets in the master branch
> while (iter.hasNext()) {
> RangerPolicy policy = iter.next();
> if (policyId.equals(policy.getId()) && (changeType ==
> RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE || changeType ==
> RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE))
> { deletedPolicies.add(policy); iter.remove(); }
> }
> switch (changeType) {
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE:
> {
> if (CollectionUtils.isNotEmpty(deletedPolicies))
> { LOG.warn("Unexpected: found existing policy for
> CHANGE_TYPE_POLICY_CREATE: " + Arrays.toString(deletedPolicies.toArray()));
> }
> break;
> }
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE:
> {
> if (CollectionUtils.isEmpty(deletedPolicies) ||
> deletedPolicies.size() > 1)
> { LOG.warn("Unexpected: found no policy or multiple policies
> for CHANGE_TYPE_POLICY_UPDATE: " +
> Arrays.toString(deletedPolicies.toArray())); }
> break;
> }
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE:
> {
> if (CollectionUtils.isEmpty(deletedPolicies) ||
> deletedPolicies.size() > 1)
> { LOG.warn("Unexpected: found no policy or multiple policies
> for CHANGE_TYPE_POLICY_DELETE: " +
> Arrays.toString(deletedPolicies.toArray())); }
> break;
> }
> default:
> break;
> }
> From the above code, we iterate delta policies and check if this policy
> exists in the existing policy, we add that to deletePolicies list.
> If a delta change type is created, we expect that it should be in the
> deletedPolicies list which will not happen.
> So we need to add changeType == RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE
> as part of the below block of code
> !image-2022-11-08-09-22-05-188.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)