azkaban-aplcache
Changes
azkaban-web-server/src/main/less/flow.less 24(+0 -24)
Details
diff --git a/azkaban-common/src/main/java/azkaban/executor/ExecutorManager.java b/azkaban-common/src/main/java/azkaban/executor/ExecutorManager.java
index 0ee4b88..400dc60 100644
--- a/azkaban-common/src/main/java/azkaban/executor/ExecutorManager.java
+++ b/azkaban-common/src/main/java/azkaban/executor/ExecutorManager.java
@@ -1483,7 +1483,7 @@ public class ExecutorManager extends EventHandler implements
continue;
// case UNKNOWN:
case READY:
- node.setStatus(Status.KILLING);
+ node.setStatus(Status.KILLED);
break;
default:
node.setStatus(Status.FAILED);
diff --git a/azkaban-common/src/main/java/azkaban/executor/Status.java b/azkaban-common/src/main/java/azkaban/executor/Status.java
index bd7eac3..e8ce784 100644
--- a/azkaban-common/src/main/java/azkaban/executor/Status.java
+++ b/azkaban-common/src/main/java/azkaban/executor/Status.java
@@ -25,7 +25,6 @@ public enum Status {
RUNNING(30),
PAUSED(40),
SUCCEEDED(50),
- KILLING(55),
KILLED(60),
FAILED(70),
FAILED_FINISHING(80),
diff --git a/azkaban-common/src/main/java/azkaban/utils/WebUtils.java b/azkaban-common/src/main/java/azkaban/utils/WebUtils.java
index e0f7ea7..0fe3ae1 100644
--- a/azkaban-common/src/main/java/azkaban/utils/WebUtils.java
+++ b/azkaban-common/src/main/java/azkaban/utils/WebUtils.java
@@ -97,8 +97,6 @@ public class WebUtils {
return "Paused";
case SKIPPED:
return "Skipped";
- case KILLING:
- return "Killing";
default:
}
return "Unknown";
diff --git a/azkaban-common/src/test/java/azkaban/executor/InteractiveTestJob.java b/azkaban-common/src/test/java/azkaban/executor/InteractiveTestJob.java
index a9323cc..6aad32f 100644
--- a/azkaban-common/src/test/java/azkaban/executor/InteractiveTestJob.java
+++ b/azkaban-common/src/test/java/azkaban/executor/InteractiveTestJob.java
@@ -33,7 +33,6 @@ public class InteractiveTestJob extends AbstractProcessJob {
private Props generatedProperties = new Props();
private boolean isWaiting = true;
private boolean succeed = true;
- private boolean ignoreCancel = false;
public InteractiveTestJob(final String jobId, final Props sysProps, final Props jobProps,
final Logger log) {
@@ -63,12 +62,6 @@ public class InteractiveTestJob extends AbstractProcessJob {
testJobs.clear();
}
- public static void clearTestJobs(final String... names) {
- for (final String name : names) {
- assertNotNull(testJobs.remove(name));
- }
- }
-
@Override
public void run() throws Exception {
final String nestedFlowPath =
@@ -144,12 +137,6 @@ public class InteractiveTestJob extends AbstractProcessJob {
}
}
- public void ignoreCancel() {
- synchronized (this) {
- this.ignoreCancel = true;
- }
- }
-
@Override
public Props getJobGeneratedProperties() {
return this.generatedProperties;
@@ -158,8 +145,12 @@ public class InteractiveTestJob extends AbstractProcessJob {
@Override
public void cancel() throws InterruptedException {
info("Killing job");
- if (!this.ignoreCancel) {
- failJob();
+ failJob();
+ }
+
+ public static void clearTestJobs(final String... names) {
+ for (String name : names) {
+ assertNotNull(testJobs.remove(name));
}
}
}
diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunner.java b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunner.java
index 12b17ee..4a98316 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunner.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunner.java
@@ -114,13 +114,13 @@ public class FlowRunner extends EventHandler implements Runnable {
private String jobLogFileSize = "5MB";
private int jobLogNumFiles = 4;
- private volatile boolean flowPaused = false;
- private volatile boolean flowFailed = false;
- private volatile boolean flowFinished = false;
- private volatile boolean flowKilled = false;
+ private boolean flowPaused = false;
+ private boolean flowFailed = false;
+ private boolean flowFinished = false;
+ private boolean flowKilled = false;
// The following is state that will trigger a retry of all failed jobs
- private volatile boolean retryFailedJobs = false;
+ private boolean retryFailedJobs = false;
/**
* Constructor. This will create its own ExecutorService for thread pools
@@ -464,7 +464,8 @@ public class FlowRunner extends EventHandler implements Runnable {
// Instant kill or skip if necessary.
boolean jobsRun = false;
for (final ExecutableNode node : nodesToCheck) {
- if (notReadyToRun(node.getStatus())) {
+ if (Status.isStatusFinished(node.getStatus())
+ || Status.isStatusRunning(node.getStatus())) {
// Really shouldn't get in here.
continue;
}
@@ -480,12 +481,6 @@ public class FlowRunner extends EventHandler implements Runnable {
return false;
}
- private boolean notReadyToRun(final Status status) {
- return Status.isStatusFinished(status)
- || Status.isStatusRunning(status)
- || Status.KILLING == status;
- }
-
private boolean runReadyJob(final ExecutableNode node) throws IOException {
if (Status.isStatusFinished(node.getStatus())
|| Status.isStatusRunning(node.getStatus())) {
@@ -548,7 +543,7 @@ public class FlowRunner extends EventHandler implements Runnable {
}
private void propagateStatus(final ExecutableFlowBase base, final Status status) {
- if (!Status.isStatusFinished(base.getStatus()) && base.getStatus() != Status.KILLING) {
+ if (!Status.isStatusFinished(base.getStatus())) {
this.logger.info("Setting " + base.getNestedId() + " to " + status);
base.setStatus(status);
if (base.getParentFlow() != null) {
@@ -575,7 +570,6 @@ public class FlowRunner extends EventHandler implements Runnable {
final ExecutableNode node = flow.getExecutableNode(end);
if (node.getStatus() == Status.KILLED
- || node.getStatus() == Status.KILLING
|| node.getStatus() == Status.FAILED
|| node.getStatus() == Status.CANCELLED) {
succeeded = false;
@@ -603,11 +597,6 @@ public class FlowRunner extends EventHandler implements Runnable {
+ durationSec + " seconds");
flow.setStatus(Status.FAILED);
break;
- case KILLING:
- this.logger
- .info("Setting flow '" + id + "' status to KILLED in " + durationSec + " seconds");
- flow.setStatus(Status.KILLED);
- break;
case FAILED:
case KILLED:
case CANCELLED:
@@ -876,7 +865,7 @@ public class FlowRunner extends EventHandler implements Runnable {
if (this.flowFailed) {
this.flow.setStatus(Status.FAILED_FINISHING);
} else if (this.flowKilled) {
- this.flow.setStatus(Status.KILLING);
+ this.flow.setStatus(Status.KILLED);
} else {
this.flow.setStatus(Status.RUNNING);
}
@@ -899,7 +888,7 @@ public class FlowRunner extends EventHandler implements Runnable {
return;
}
this.logger.info("Kill has been called on flow " + this.execId);
- this.flow.setStatus(Status.KILLING);
+ this.flow.setStatus(Status.KILLED);
// If the flow is paused, then we'll also unpause
this.flowPaused = false;
this.flowKilled = true;
@@ -950,8 +939,6 @@ public class FlowRunner extends EventHandler implements Runnable {
continue;
} else if (node.getStatus() == Status.RUNNING) {
continue;
- } else if (node.getStatus() == Status.KILLING) {
- continue;
} else if (node.getStatus() == Status.SKIPPED) {
node.setStatus(Status.DISABLED);
node.setEndTime(-1);
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 3191b7d..6c18815 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/JobRunner.java
@@ -91,7 +91,7 @@ public class JobRunner extends EventHandler implements Runnable {
private int jobLogBackupIndex;
private long delayStartMs = 0;
- private volatile boolean killed = false;
+ private boolean killed = false;
private BlockingStatus currentBlockStatus = null;
public JobRunner(final ExecutableNode node, final File workingDir, final ExecutorLoader loader,
@@ -247,7 +247,7 @@ public class JobRunner extends EventHandler implements Runnable {
}
public String getJobId() {
- return node.getId();
+ return this.node.getId();
}
public String getLogFilePath() {
@@ -404,7 +404,7 @@ public class JobRunner extends EventHandler implements Runnable {
nodeStatus = changeStatus(Status.SKIPPED, time);
quickFinish = true;
} else if (this.isKilled()) {
- nodeStatus = changeStatus(Status.KILLING, time);
+ nodeStatus = changeStatus(Status.KILLED, time);
quickFinish = true;
}
@@ -740,10 +740,9 @@ public class JobRunner extends EventHandler implements Runnable {
}
private Status runJob() {
- Status finalStatus;
+ Status finalStatus = this.node.getStatus();
try {
this.job.run();
- finalStatus = this.node.getStatus();
} catch (final Throwable e) {
if (this.props.getBoolean("job.succeed.on.failure", false)) {
finalStatus = changeStatus(Status.FAILED_SUCCEEDED);
@@ -765,8 +764,8 @@ public class JobRunner extends EventHandler implements Runnable {
this.node.setOutputProps(this.job.getJobGeneratedProperties());
}
- // If the job is still running (but not killed), set the status to Success.
- if (!Status.isStatusFinished(finalStatus) && finalStatus != Status.KILLING) {
+ // If the job is still running, set the status to Success.
+ if (!Status.isStatusFinished(finalStatus)) {
finalStatus = changeStatus(Status.SUCCEEDED);
}
return finalStatus;
@@ -805,7 +804,6 @@ public class JobRunner extends EventHandler implements Runnable {
return;
}
logError("Kill has been called.");
- this.changeStatus(Status.KILLING);
this.killed = true;
final BlockingStatus status = this.currentBlockStatus;
@@ -831,6 +829,7 @@ public class JobRunner extends EventHandler implements Runnable {
"Failed trying to cancel job. Maybe it hasn't started running yet or just finished.");
}
+ this.changeStatus(Status.KILLED);
}
}
diff --git a/azkaban-exec-server/src/test/java/azkaban/execapp/FlowRunnerTest.java b/azkaban-exec-server/src/test/java/azkaban/execapp/FlowRunnerTest.java
index 9ef446c..2041e78 100644
--- a/azkaban-exec-server/src/test/java/azkaban/execapp/FlowRunnerTest.java
+++ b/azkaban-exec-server/src/test/java/azkaban/execapp/FlowRunnerTest.java
@@ -263,12 +263,7 @@ public class FlowRunnerTest extends FlowRunnerTestBase {
assertStatus("job2", Status.SUCCEEDED);
waitJobsStarted(this.runner, "job3", "job4", "job6");
- InteractiveTestJob.getTestJob("job3").ignoreCancel();
this.runner.kill("me");
- assertStatus("job3", Status.KILLING);
- assertFlowStatus(Status.KILLING);
- InteractiveTestJob.getTestJob("job3").failJob();
-
Assert.assertTrue(this.runner.isKilled());
assertStatus("job5", Status.CANCELLED);
diff --git a/azkaban-web-server/src/main/less/azkaban-graph.less b/azkaban-web-server/src/main/less/azkaban-graph.less
index bcb3817..ce93658 100644
--- a/azkaban-web-server/src/main/less/azkaban-graph.less
+++ b/azkaban-web-server/src/main/less/azkaban-graph.less
@@ -94,15 +94,6 @@
fill: #FFF;
}
-.KILLING > g > rect {
- fill: #FF9999;
- stroke: #FF9999;
-}
-
-.KILLING > g > text {
- fill: #FFF;
-}
-
.CANCELLED > g > rect {
fill: #FF9999;
stroke: #FF9999;
azkaban-web-server/src/main/less/flow.less 24(+0 -24)
diff --git a/azkaban-web-server/src/main/less/flow.less b/azkaban-web-server/src/main/less/flow.less
index 1273dce..01e7386 100644
--- a/azkaban-web-server/src/main/less/flow.less
+++ b/azkaban-web-server/src/main/less/flow.less
@@ -65,18 +65,6 @@
background-color: @flow-killed-color;
}
- // #ff9999 = killing vs. #3398cc = running
- &.KILLING {
- background-color: @flow-killing-color;
- background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
- background-size: 40px 40px;
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
- }
-
&.RUNNING {
background-color: @flow-running-color;
background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
@@ -127,10 +115,6 @@ td {
background-color: @flow-killed-color;
}
- &.KILLING {
- background-color: @flow-killing-color;
- }
-
&.PAUSED {
background-color: @flow-paused-color;
}
@@ -185,10 +169,6 @@ td {
color: @flow-killed-color;
}
- &.KILLING {
- color: @flow-killing-color;
- }
-
&.CANCELLED {
color: @flow-cancelled-color;
}
@@ -330,10 +310,6 @@ li.tree-list-item {
background-position: 0px 0px;
}
- &.KILLING .icon {
- background-position: 0px 0px;
- }
-
&.CANCELLED .icon {
background-position: 0px 0px;
opacity: 0.5;
diff --git a/azkaban-web-server/src/main/less/variables.less b/azkaban-web-server/src/main/less/variables.less
index 226ada2..078d2b2 100644
--- a/azkaban-web-server/src/main/less/variables.less
+++ b/azkaban-web-server/src/main/less/variables.less
@@ -3,7 +3,6 @@
@flow-succeeded-color: #5cb85c;
@flow-failed-color: #d9534f;
@flow-killed-color: #d9534f;
-@flow-killing-color: #ff9999;
@flow-paused-color: #c82123;
@flow-running-color: #3398cc;
@flow-failed-finishing-color: #f19153;
diff --git a/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/historypage.vm b/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/historypage.vm
index 58c407f..b18f52e 100644
--- a/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/historypage.vm
+++ b/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/historypage.vm
@@ -197,7 +197,6 @@
<option value=30>Running</option>
<option value=40>Paused</option>
<option value=50>Succeed</option>
- <option value=55>Killing</option>
<option value=60>Killed</option>
<option value=70>Failed</option>
<option value=80>Failed Finishing</option>
diff --git a/azkaban-web-server/src/web/js/azkaban/util/job-status.js b/azkaban-web-server/src/web/js/azkaban/util/job-status.js
index a5f17b6..fd61693 100644
--- a/azkaban-web-server/src/web/js/azkaban/util/job-status.js
+++ b/azkaban-web-server/src/web/js/azkaban/util/job-status.js
@@ -24,7 +24,6 @@ var statusStringMap = {
"FAILED_FINISHING": "Running w/Failure",
"RUNNING": "Running",
"WAITING": "Waiting",
- "KILLING": "Killing",
"KILLED": "Killed",
"CANCELLED": "Cancelled",
"DISABLED": "Disabled",
diff --git a/azkaban-web-server/src/web/js/azkaban/view/exflow.js b/azkaban-web-server/src/web/js/azkaban/view/exflow.js
index 0920b55..026a946 100644
--- a/azkaban-web-server/src/web/js/azkaban/view/exflow.js
+++ b/azkaban-web-server/src/web/js/azkaban/view/exflow.js
@@ -205,8 +205,6 @@ azkaban.FlowTabView = Backbone.View.extend({
else if (data.status == "KILLED") {
$("#executebtn").show();
}
- else if (data.status == "KILLING") {
- }
},
handleCancelClick: function(evt) {
@@ -449,10 +447,6 @@ var updaterFunction = function() {
// 2 min updates
setTimeout(function() {updaterFunction();}, 2*60*1000);
}
- else if (data.status == "KILLING") {
- // 30 s updates - should finish soon now
- setTimeout(function() {updaterFunction();}, 30*1000);
- }
else if (data.status != "SUCCEEDED" && data.status != "FAILED") {
// 2 min updates
setTimeout(function() {updaterFunction();}, 2*60*1000);
diff --git a/azkaban-web-server/src/web/js/azkaban/view/time-graph.js b/azkaban-web-server/src/web/js/azkaban/view/time-graph.js
index 9c43560..a74a49c 100644
--- a/azkaban-web-server/src/web/js/azkaban/view/time-graph.js
+++ b/azkaban-web-server/src/web/js/azkaban/view/time-graph.js
@@ -93,9 +93,6 @@ azkaban.TimeGraphView = Backbone.View.extend({
else if (status == 'PAUSED') {
return '#c92123';
}
- else if (status == 'KILLING') {
- return '#ff9999';
- }
else if (status == 'FAILED' ||
status == 'FAILED_FINISHING' ||
status == 'KILLED') {