azkaban-aplcache

Prevent a new inactive executor instance from deleting old

2/1/2017 10:56:15 PM

Details

diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/ExecutorServlet.java b/azkaban-exec-server/src/main/java/azkaban/execapp/ExecutorServlet.java
index 0f87d72..53231a9 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/ExecutorServlet.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/ExecutorServlet.java
@@ -375,7 +375,7 @@ public class ExecutorServlet extends HttpServlet implements ConnectorParams {
     if (executor.isActive() != value) {
       executor.setActive(value);
       executorLoader.updateExecutor(executor);
-      flowRunnerManager.setActive(value);
+      flowRunnerManager.setExecutorActive(value);
     } else {
       logger.warn("Set active action ignored. Executor is already " + (value? "active" : "inactive"));
     }
diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
index af64bc7..4491dcb 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
@@ -17,7 +17,6 @@
 package azkaban.execapp;
 
 import java.io.File;
-import java.io.FileFilter;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.lang.Thread.State;
@@ -140,7 +139,7 @@ public class FlowRunnerManager implements EventListener,
   private long lastFlowSubmittedDate = 0;
 
   // whether the current executor is active
-  private volatile boolean isActive = false;
+  private volatile boolean isExecutorActive = false;
 
   public FlowRunnerManager(Props props, ExecutorLoader executorLoader,
       ProjectLoader projectLoader, ClassLoader parentClassLoader) throws IOException {
@@ -174,7 +173,6 @@ public class FlowRunnerManager implements EventListener,
 
     this.validateProxyUser = azkabanProps.getBoolean("proxy.user.lock.down", false);
 
-    setActive(true);
 
     cleanerThread = new CleanerThread();
     cleanerThread.start();
@@ -246,8 +244,8 @@ public class FlowRunnerManager implements EventListener,
     return allProjects;
   }
 
-  public void setActive(boolean isActive) {
-    this.isActive = isActive;
+  public void setExecutorActive(boolean isActive) {
+    this.isExecutorActive = isActive;
   }
 
   public long getLastFlowSubmittedTime(){
@@ -304,7 +302,7 @@ public class FlowRunnerManager implements EventListener,
               lastRecentlyFinishedCleanTime = currentTime;
             }
 
-            if (currentTime - OLD_PROJECT_DIR_INTERVAL_MS > lastOldProjectCleanTime && isActive) {
+            if (currentTime - OLD_PROJECT_DIR_INTERVAL_MS > lastOldProjectCleanTime && isExecutorActive) {
               logger.info("Cleaning old projects");
               cleanOlderProjects();
               lastOldProjectCleanTime = currentTime;