[ 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 >> [~mad...@apache.org] [~abhayk] was (Author: JIRAUSER295265): The review is available here -[https://reviews.apache.org/r/74112/] cc >> [~mad...@apache.org] [~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)