You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by an...@apache.org on 2018/10/15 12:15:42 UTC
oozie git commit: OOZIE-3365 Workflow and coordinator action status
remains RUNNING after rerun (satishsaley)
Repository: oozie
Updated Branches:
refs/heads/master 460372961 -> 83e2e50fa
OOZIE-3365 Workflow and coordinator action status remains RUNNING after rerun (satishsaley)
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/83e2e50f
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/83e2e50f
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/83e2e50f
Branch: refs/heads/master
Commit: 83e2e50fa299b1f6aeff73a70be436156b5f6eb4
Parents: 4603729
Author: Andras Piros <an...@cloudera.com>
Authored: Mon Oct 15 14:14:39 2018 +0200
Committer: Andras Piros <an...@cloudera.com>
Committed: Mon Oct 15 14:14:39 2018 +0200
----------------------------------------------------------------------
.../apache/oozie/command/wf/SignalXCommand.java | 5 +-
.../oozie/TestSubWorkflowActionExecutor.java | 86 ++++++++++++++++++++
release-log.txt | 1 +
3 files changed, 90 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/oozie/blob/83e2e50f/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java b/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
index e95a60a..9a16b85 100644
--- a/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
+++ b/core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java
@@ -372,8 +372,9 @@ public class SignalXCommand extends WorkflowXCommand<Void> {
// is inserted only once
WorkflowActionQueryExecutor.getInstance().get(WorkflowActionQuery.GET_ACTION_ID_TYPE_LASTCHECK,
newAction.getId());
-
- continue;
+ if (!SubWorkflowActionExecutor.ACTION_TYPE.equals(newAction.getType())) {
+ continue;
+ }
} catch (JPAExecutorException jee) {
}
}
http://git-wip-us.apache.org/repos/asf/oozie/blob/83e2e50f/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java b/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
index 9c7f821..7e21137 100644
--- a/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
+++ b/core/src/test/java/org/apache/oozie/action/oozie/TestSubWorkflowActionExecutor.java
@@ -29,6 +29,7 @@ import org.apache.oozie.action.hadoop.LauncherMainTester;
import org.apache.oozie.client.OozieClient;
import org.apache.oozie.client.WorkflowAction;
import org.apache.oozie.client.WorkflowJob;
+import org.apache.oozie.client.WorkflowJob.Status;
import org.apache.oozie.command.wf.SuspendXCommand;
import org.apache.oozie.local.LocalOozie;
import org.apache.oozie.service.HadoopAccessorService;
@@ -613,6 +614,72 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
return workflowUri;
}
+ public void testSubWorkflowRerunTermination() throws Exception {
+ try {
+ Path subWorkflowAppPath = getFsTestCaseDir();
+ FileSystem fs = getFileSystem();
+ Path subWorkflowPath = new Path(subWorkflowAppPath, "workflow.xml");
+ Writer writer = new OutputStreamWriter(fs.create(subWorkflowPath));
+ writer.write(getFailingSubWorkflow());
+ writer.close();
+ String workflowUri = getTestCaseFileUri("workflow.xml");
+ String appXml = "<workflow-app xmlns=\"uri:oozie:workflow:0.4\" name=\"workflow\">" +
+ "<start to=\"shell-node\"/>" +
+ "<action name=\"shell-node\">" +
+ "<shell xmlns=\"uri:oozie:shell-action:0.3\">" +
+ "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
+ "<name-node>" + getNameNodeUri() + "</name-node>" +
+ "<exec>dummycommand</exec>" +
+ "</shell>" +
+ "<ok to=\"subwf\"/>" +
+ "<error to=\"subwf\"/>" +
+ "</action>" +
+ "<action name=\"subwf\">" +
+ " <sub-workflow xmlns='uri:oozie:workflow:0.4'>" +
+ " <app-path>" + subWorkflowAppPath.toString() + "</app-path>" +
+ " </sub-workflow>" +
+ " <ok to=\"end\"/>" +
+ " <error to=\"fail\"/>" +
+ "</action>" +
+ "<kill name=\"fail\">" +
+ " <message>Sub workflow failed, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>" +
+ "</kill>" +
+ "<end name=\"end\"/>" +
+ "</workflow-app>";
+
+ writeToFile(appXml, workflowUri);
+ LocalOozie.start();
+ final OozieClient wfClient = LocalOozie.getClient();
+ Properties conf = wfClient.createConfiguration();
+ conf.setProperty(OozieClient.APP_PATH, workflowUri);
+ conf.setProperty(OozieClient.USER_NAME, getTestUser());
+ conf.setProperty("appName", "var-app-name");
+ final String jobId = wfClient.submit(conf);
+ wfClient.start(jobId);
+
+ waitFor(JOB_TIMEOUT, new Predicate() {
+ public boolean evaluate() throws Exception {
+ return (wfClient.getJobInfo(jobId).getStatus() == Status.KILLED);
+ }
+ });
+
+ conf.setProperty(OozieClient.RERUN_FAIL_NODES, "true");
+ wfClient.reRun(jobId,conf);
+
+ waitFor(JOB_TIMEOUT, new Predicate() {
+ public boolean evaluate() throws Exception {
+ return (wfClient.getJobInfo(jobId).getStatus() == Status.KILLED);
+ }
+ });
+
+ WorkflowJob job = wfClient.getJobInfo(jobId);
+ assertEquals(job.getStatus(), Status.KILLED);
+
+ } finally {
+ LocalOozie.stop();
+ }
+ }
+
public void testParentGlobalConf() throws Exception {
try {
Path subWorkflowAppPath = createSubWorkflowXml();
@@ -831,4 +898,23 @@ public class TestSubWorkflowActionExecutor extends ActionExecutorTestCase {
+ "<end name='end' />"
+ "</workflow-app>";
}
+
+ private String getFailingSubWorkflow() {
+ return "<workflow-app xmlns='uri:oozie:workflow:0.4' name='app'>" +
+ "<start to=\"shell-node\"/>" +
+ "<action name=\"shell-node\">" +
+ "<shell xmlns=\"uri:oozie:shell-action:0.3\">" +
+ "<job-tracker>" + getJobTrackerUri() + "</job-tracker>" +
+ "<name-node>" + getNameNodeUri() + "</name-node>" +
+ "<exec>dummycommand</exec>" +
+ "</shell>" +
+ "<ok to=\"subwf\"/>" +
+ "<error to=\"subwf\"/>" +
+ "</action>" +
+ "<kill name='fail'>" +
+ "<message>shell action fail, error message[${wf:errorMessage(wf:lastErrorNode())}]</message>" +
+ "</kill>" +
+ "<end name='end' />" +
+ "</workflow-app>";
+ }
}
http://git-wip-us.apache.org/repos/asf/oozie/blob/83e2e50f/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 54cd1f3..fbebb4f 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
-- Oozie 5.2.0 release (trunk - unreleased)
+OOZIE-3365 Workflow and coordinator action status remains RUNNING after rerun (satishsaley)
OOZIE-3361 [docs] Document embedded XML job submission mode (asalamon74 via andras.piros)
OOZIE-3368 [fluent-job] CredentialsRetrying example does not compile (daniel.becker via andras.piros)
OOZIE-3277 [build] Check for star imports (kmarton via andras.piros)