This is an automated email from the ASF dual-hosted git repository.

abhay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/master by this push:
     new d6c53d9  RANGER-2839: Assorted improvements for debugging and handling 
of thread terminations, clean-up of unused data, etc. - Part 3
d6c53d9 is described below

commit d6c53d9cdef75c00c28cea487c70b3fceb63e672
Author: Abhay Kulkarni <[email protected]>
AuthorDate: Thu Jun 18 14:08:50 2020 -0700

    RANGER-2839: Assorted improvements for debugging and handling of thread 
terminations, clean-up of unused data, etc. - Part 3
---
 .../ranger/plugin/policyengine/RangerResourceTrie.java   |  8 +++++---
 .../apache/ranger/plugin/service/RangerBasePlugin.java   | 16 +++++++++-------
 .../apache/ranger/common/RangerServicePoliciesCache.java |  2 +-
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerResourceTrie.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerResourceTrie.java
index 95af89d..104b38d 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerResourceTrie.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/policyengine/RangerResourceTrie.java
@@ -920,9 +920,11 @@ public class RangerResourceTrie<T extends 
RangerPolicyResourceEvaluator> {
         boolean removeWildcardEvaluator(U evaluator) {
             if (CollectionUtils.isNotEmpty(wildcardEvaluators) && 
wildcardEvaluators.contains(evaluator)) {
                 undoSetup();
-                wildcardEvaluators.remove(evaluator);
-                if (CollectionUtils.isEmpty(wildcardEvaluators)) {
-                    wildcardEvaluators = null;
+                if (CollectionUtils.isNotEmpty(wildcardEvaluators)) {
+                    wildcardEvaluators.remove(evaluator);
+                    if (CollectionUtils.isEmpty(wildcardEvaluators)) {
+                        wildcardEvaluators = null;
+                    }
                 }
                 return true;
             } else {
diff --git 
a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
 
b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
index d5e5c79..d860f3c 100644
--- 
a/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
+++ 
b/agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java
@@ -191,21 +191,22 @@ public class RangerBasePlugin {
                try {
                        RangerPolicyEngine oldPolicyEngine = this.policyEngine;
                        ServicePolicies    servicePolicies = null;
-                       boolean            isValid         = true;
+                       boolean            isNewEngineNeeded = true;
                        boolean            usePolicyDeltas = false;
 
                        if (policies == null) {
                                policies = getDefaultSvcPolicies();
 
                                if (policies == null) {
-                                       LOG.error("Could not get default 
Service Policies");
-                                       isValid = false;
+                                       LOG.error("Could not get default 
Service Policies. Keeping old policy-engine!");
+                                       isNewEngineNeeded = false;
                                }
                        } else {
                                Boolean hasPolicyDeltas = 
RangerPolicyDeltaUtil.hasPolicyDeltas(policies);
 
                                if (hasPolicyDeltas == null) {
-                                       LOG.warn("Policies and policy-deltas 
are empty. Creating policy engine with no policies!!");
+                                       LOG.warn("Policies and policy-deltas 
are empty!! Keeping old policy-engine!");
+                                       isNewEngineNeeded = false;
                                } else {
                                        if 
(hasPolicyDeltas.equals(Boolean.TRUE)) {
                                                // Rebuild policies from deltas
@@ -217,7 +218,8 @@ public class RangerBasePlugin {
                                                        usePolicyDeltas = true;
                                                } else {
                                                        LOG.error("Could not 
apply deltas=" + Arrays.toString(policies.getPolicyDeltas().toArray()));
-                                                       isValid = false;
+                                                       LOG.warn("Keeping old 
policy-engine!");
+                                                       isNewEngineNeeded = 
false;
                                                }
                                        } else {
                                                usePolicyDeltas = false;
@@ -225,7 +227,7 @@ public class RangerBasePlugin {
                                }
                        }
 
-                       if (isValid) {
+                       if (isNewEngineNeeded) {
                                RangerPolicyEngine newPolicyEngine      = null;
                                boolean            isPolicyEngineShared = false;
 
@@ -293,7 +295,7 @@ public class RangerBasePlugin {
                                }
 
                        } else {
-                               LOG.error("Returning without saving policies to 
cache. Leaving current policy engine as-is");
+                               LOG.warn("Returning without saving policies to 
cache. Leaving current policy engine as-is");
                        }
 
                } catch (Exception e) {
diff --git 
a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
 
b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
index 23c40b5..a09a352 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/common/RangerServicePoliciesCache.java
@@ -220,7 +220,7 @@ public class RangerServicePoliciesCache {
                                                        }
                                                        ret = 
servicePoliciesForDeltas;
                                                } else {
-                                                       LOG.warn("Deltas were 
requested, but could not get them!! lastKnownVersion:[" + lastKnownVersion + 
"]; Returning cached ServicePolicies:[" + (servicePolicies != null ? 
servicePolicies.getPolicyVersion() : -1L) + "]");
+                                                       LOG.warn("Deltas were 
requested for service:[" + serviceName + "], but could not get them!! 
lastKnownVersion:[" + lastKnownVersion + "]; Returning cached 
ServicePolicies:[" + (servicePolicies != null ? 
servicePolicies.getPolicyVersion() : -1L) + "]");
 
                                                        this.deltaCache = null;
                                                        ret = 
this.servicePolicies;

Reply via email to