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)