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/11/06 11:34:59 UTC

oozie git commit: OOZIE-3378 [core] Coordinator action's status is SUBMITTED after E1003 error (asalamon74 via andras.piros)

Repository: oozie
Updated Branches:
  refs/heads/master 22b51b0b3 -> 1cb67fd6b


OOZIE-3378 [core] Coordinator action's status is SUBMITTED after E1003 error (asalamon74 via andras.piros)


Project: http://git-wip-us.apache.org/repos/asf/oozie/repo
Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/1cb67fd6
Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/1cb67fd6
Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/1cb67fd6

Branch: refs/heads/master
Commit: 1cb67fd6b5726128fcf1a751ff236a4c794bb8a4
Parents: 22b51b0
Author: Andras Piros <an...@cloudera.com>
Authored: Tue Nov 6 12:29:30 2018 +0100
Committer: Andras Piros <an...@cloudera.com>
Committed: Tue Nov 6 12:29:30 2018 +0100

----------------------------------------------------------------------
 .../command/coord/CoordActionStartXCommand.java | 15 ++++----
 .../coord/TestCoordActionStartXCommand.java     | 38 ++++++++++++++++++++
 release-log.txt                                 |  1 +
 3 files changed, 47 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/1cb67fd6/core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java b/core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java
index 267943e..9b434b7 100644
--- a/core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java
+++ b/core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java
@@ -192,14 +192,15 @@ public class CoordActionStartXCommand extends CoordinatorXCommand<Void> {
 
         log.debug("actionid=" + actionId + ", status=" + coordAction.getStatus());
         if (coordAction.getStatus() == CoordinatorAction.Status.SUBMITTED) {
-            // log.debug("getting.. job id: " + coordAction.getJobId());
-            // create merged runConf to pass to WF Engine
-            Configuration runConf = mergeConfig(coordAction);
-            coordAction.setRunConf(XmlUtils.prettyPrint(runConf).toString());
-            // log.debug("%%% merged runconf=" +
-            // XmlUtils.prettyPrint(runConf).toString());
-            DagEngine dagEngine = Services.get().get(DagEngineService.class).getDagEngine(user);
             try {
+                // log.debug("getting.. job id: " + coordAction.getJobId());
+                // create merged runConf to pass to WF Engine
+                Configuration runConf = mergeConfig(coordAction);
+                coordAction.setRunConf(XmlUtils.prettyPrint(runConf).toString());
+                // log.debug("%%% merged runconf=" +
+                // XmlUtils.prettyPrint(runConf).toString());
+                DagEngine dagEngine = Services.get().get(DagEngineService.class).getDagEngine(user);
+
                 Configuration conf = new XConfiguration(new StringReader(coordAction.getRunConf()));
                 SLAEventBean slaEvent = SLADbOperations.createStatusEvent(coordAction.getSlaXml(), coordAction.getId(),
                         Status.STARTED,

http://git-wip-us.apache.org/repos/asf/oozie/blob/1cb67fd6/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionStartXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionStartXCommand.java b/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionStartXCommand.java
index 4215a32..0cbb7b1 100644
--- a/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionStartXCommand.java
+++ b/core/src/test/java/org/apache/oozie/command/coord/TestCoordActionStartXCommand.java
@@ -29,7 +29,9 @@ import java.io.PrintWriter;
 import java.io.Reader;
 import java.io.Writer;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Properties;
 
 import org.apache.hadoop.conf.Configuration;
@@ -117,6 +119,29 @@ public class TestCoordActionStartXCommand extends XDataTestCase {
     }
 
     /**
+     * Coord action XML contains disallowed property change and
+     * test that CoordActionStartXCommand stores error code and error message in
+     * action's table during error handling
+     *
+     * @throws IOException
+     * @throws JPAExecutorException
+     * @throws CommandException
+     */
+    public void testActionStartWithError1003Reported() throws IOException, JPAExecutorException, CommandException {
+        String actionId = new Date().getTime() + "-COORD-ActionStartCommand-C@1";
+        String wfApp = "<start to='${someParam}' />";
+        Map<String, String> additionalProperties = new HashMap<>();
+        additionalProperties.put("user.name", "admin");
+        addRecordToActionTable(actionId, 1, wfApp, additionalProperties);
+        new CoordActionStartXCommand(actionId, "test", "myapp", "myjob").call();
+        final JPAService jpaService = Services.get().get(JPAService.class);
+        CoordinatorActionBean action = jpaService.execute(new CoordActionGetForStartJPAExecutor(actionId));
+        assertEquals("Expected status was FAILED due to E1003 error code", CoordinatorAction.Status.FAILED, action.getStatus());
+        assertEquals(action.getErrorCode(), ErrorCode.E1003.toString());
+        assertTrue(action.getErrorMessage().contains("Invalid coordinator application attributes"));
+    }
+
+    /**
      * Test : configuration contains url string which should be escaped before put into the evaluator.
      * If not escape, the error 'SAXParseException' will be thrown and workflow job will not be submitted.
      *
@@ -211,6 +236,11 @@ public class TestCoordActionStartXCommand extends XDataTestCase {
 
     private void addRecordToActionTable(String actionId, int actionNum, String wfParam)
             throws IOException, JPAExecutorException {
+        addRecordToActionTable(actionId, actionNum, wfParam, null);
+    }
+
+    private void addRecordToActionTable(String actionId, int actionNum, String wfParam, Map<String, String> additionalProperties)
+            throws IOException, JPAExecutorException {
         final JPAService jpaService = Services.get().get(JPAService.class);
         CoordinatorActionBean action = new CoordinatorActionBean();
         action.setJobId(actionId);
@@ -257,6 +287,14 @@ public class TestCoordActionStartXCommand extends XDataTestCase {
         actionXml += "<name>inputB</name>";
         actionXml += "<value>" + getTestCaseFileUri("coord/US//2009/02/01") + "</value>";
         actionXml += "</property>";
+        if (additionalProperties != null) {
+            for (Map.Entry<String, String> entry : additionalProperties.entrySet()) {
+                actionXml += "<property>";
+                actionXml += "<name>" + entry.getKey() + "</name>";
+                actionXml += "<value>" + entry.getValue() + "</value>";
+                actionXml += "</property>";
+            }
+        }
         actionXml += "</configuration>";
         actionXml += "</workflow>";
         String slaXml = " <sla:info xmlns:sla='uri:oozie:sla:0.1'>" + " <sla:app-name>test-app</sla:app-name>"

http://git-wip-us.apache.org/repos/asf/oozie/blob/1cb67fd6/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index d8561d3..47e6f27 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.2.0 release (trunk - unreleased)
 
+OOZIE-3378 [core] Coordinator action's status is SUBMITTED after E1003 error (asalamon74 via andras.piros)
 OOZIE-3373 [core] Logging of lock information is inconsistent (Prabhu Joseph via andras.piros)
 OOZIE-3371 TestSubWorkflowActionExecutor#testSubWorkflowRerun() is flaky (andras.piros)
 OOZIE-3365 Workflow and coordinator action status remains RUNNING after rerun (satishsaley)