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;
}
}