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 <[email protected]> Authored: Mon Oct 15 14:14:39 2018 +0200 Committer: Andras Piros <[email protected]> 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)
