You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ab...@apache.org on 2020/06/18 21:09:12 UTC

[ranger] branch master updated: RANGER-2839: Assorted improvements for debugging and handling of thread terminations, clean-up of unused data, etc. - Part 3

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 <ab...@apache.org>
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;