azkaban-developers

uploadExecutableNode improvement (#1167) If the initial

6/5/2017 9:15:47 PM

Details

diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java b/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
index 2ee9d67..3895cf1 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
@@ -584,8 +584,9 @@ public class JobRunner extends EventHandler implements Runnable {
     // Start the node.
     this.node.setStartTime(System.currentTimeMillis());
     Status finalStatus = this.node.getStatus();
-    uploadExecutableNode();
-    if (!errorFound && !isKilled()) {
+    if (!uploadExecutableNode()) {
+      finalStatus = changeStatus(Status.FAILED);
+    } else if (!errorFound && !isKilled()) {
       fireEvent(Event.create(this, Type.JOB_STARTED, new EventData(this.node)));
 
       final Status prepareStatus = prepareJob();
@@ -622,11 +623,13 @@ public class JobRunner extends EventHandler implements Runnable {
     writeStatus();
   }
 
-  private void uploadExecutableNode() {
+  private boolean uploadExecutableNode() {
     try {
       this.loader.uploadExecutableNode(this.node, this.props);
+      return true;
     } catch (final ExecutorManagerException e) {
       this.logger.error("Error writing initial node properties", e);
+      return false;
     }
   }