mneethiraj commented on code in PR #667:
URL: https://github.com/apache/ranger/pull/667#discussion_r2350106978


##########
agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java:
##########
@@ -128,23 +128,41 @@ public void setLastActivationTimeInMillis(long 
lastActivationTimeInMillis) {
     }
 
     public void startRefresher() {
-        loadRoles();
-        loadPolicy();
-
-        super.start();
+        try {
+            loadRoles();
+        } catch (Exception e) {
+            LOG.error("Initial roles load failed for serviceName={}: {}, will 
retry in {}ms via scheduled refresh", serviceName, e, pollingIntervalMs);
+        }
+        try {
+            loadPolicy();
+        } catch (Exception e) {
+            LOG.error("Initial policy load failed for serviceName={}: {}, will 
retry in {}ms via scheduled refresh", serviceName, e, pollingIntervalMs);
+        }
+        initRefresher();
+    }
 
+    private void initRefresher() {
+        LOG.debug("==> PolicyRefresher(serviceName={}).initRefresher()", 
serviceName);
+        try {
+            super.start();
+        } catch (IllegalStateException e) {
+            LOG.error("Failed to start PolicyRefresher thread for 
serviceName={}", serviceName, e);
+            throw e;
+        }
         policyDownloadTimer = new Timer("policyDownloadTimer", true);
-
         try {
             policyDownloadTimer.schedule(new 
DownloaderTask(policyDownloadQueue), pollingIntervalMs, pollingIntervalMs);
-
             LOG.debug("Scheduled policyDownloadRefresher to download policies 
every {} milliseconds", pollingIntervalMs);
-        } catch (IllegalStateException exception) {
-            LOG.error("Error scheduling policyDownloadTimer:", exception);
+        } catch (IllegalArgumentException | IllegalStateException | 
NullPointerException e) {
+            LOG.error("Error scheduling policyDownloadTimer:", e);
             LOG.error("*** Policies will NOT be downloaded every {} 
milliseconds ***", pollingIntervalMs);
-
-            policyDownloadTimer = null;
+            if (policyDownloadTimer != null) {

Review Comment:
   Will `policyDownloadTimer` be null here, given the initialization in line 
152 above?



##########
agents-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java:
##########
@@ -128,23 +128,41 @@ public void setLastActivationTimeInMillis(long 
lastActivationTimeInMillis) {
     }
 
     public void startRefresher() {
-        loadRoles();
-        loadPolicy();
-
-        super.start();
+        try {

Review Comment:
   `loadRoles()` and `loadPolicy()` are called from `run()` method as well. 
Consider moving `try/catch` blocks inside `loadRoles()` and `loadPolicy()` 
implementations.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@ranger.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to