You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by km...@apache.org on 2018/11/28 11:37:30 UTC

oozie git commit: OOZIE-3384 [tests] TestWorkflowActionRetryInfoXCommand#testRetryConsoleUrlForked() is flaky (asalamon74 via kmarton)

Repository: oozie
Updated Branches:
  refs/heads/master 494ab6f4a -> 7ef418f7f


OOZIE-3384 [tests] TestWorkflowActionRetryInfoXCommand#testRetryConsoleUrlForked() is flaky (asalamon74 via kmarton)


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

Branch: refs/heads/master
Commit: 7ef418f7feafb904c1d2d41d39be52d64a854666
Parents: 494ab6f
Author: Julia Kinga Marton <km...@apache.org>
Authored: Wed Nov 28 12:36:46 2018 +0100
Committer: Julia Kinga Marton <km...@apache.org>
Committed: Wed Nov 28 12:36:46 2018 +0100

----------------------------------------------------------------------
 .../wf/TestWorkflowActionRetryInfoXCommand.java | 70 ++++++++++++++------
 release-log.txt                                 |  1 +
 2 files changed, 49 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/oozie/blob/7ef418f7/core/src/test/java/org/apache/oozie/command/wf/TestWorkflowActionRetryInfoXCommand.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/oozie/command/wf/TestWorkflowActionRetryInfoXCommand.java b/core/src/test/java/org/apache/oozie/command/wf/TestWorkflowActionRetryInfoXCommand.java
index 5c06ae5..8418b9f 100644
--- a/core/src/test/java/org/apache/oozie/command/wf/TestWorkflowActionRetryInfoXCommand.java
+++ b/core/src/test/java/org/apache/oozie/command/wf/TestWorkflowActionRetryInfoXCommand.java
@@ -28,6 +28,7 @@ import org.apache.oozie.WorkflowActionBean;
 import org.apache.oozie.client.OozieClient;
 import org.apache.oozie.client.rest.JsonTags;
 import org.apache.oozie.client.rest.JsonUtils;
+import org.apache.oozie.command.CommandException;
 import org.apache.oozie.executor.jpa.WorkflowActionsGetForJobJPAExecutor;
 import org.apache.oozie.service.ActionService;
 import org.apache.oozie.service.ExtendedCallableQueueService;
@@ -125,7 +126,7 @@ public class TestWorkflowActionRetryInfoXCommand extends XDataTestCase {
         validateRetryConsoleUrl(wfXml);
     }
 
-    public void validateRetryConsoleUrl(String wfXml) throws Exception {
+    private void validateRetryConsoleUrl(String wfXml) throws Exception {
         Configuration conf = new XConfiguration();
         File workflowUri = new File(getTestCaseDir(), "workflow.xml");
         writeToFile(wfXml, workflowUri);
@@ -144,14 +145,12 @@ public class TestWorkflowActionRetryInfoXCommand extends XDataTestCase {
         waitFor(20 * 1000, new Predicate() {
             public boolean evaluate() throws Exception {
                 List<WorkflowActionBean> actions = jpaService.execute(actionsGetExecutor);
-                WorkflowActionBean action = null;
                 for (WorkflowActionBean bean : actions) {
-                    if (bean.getType().equals("test")) {
-                        action = bean;
-                        break;
+                    if (bean.getType().equals("test") && bean.getUserRetryCount() == 2) {
+                        return true;
                     }
                 }
-                return (action != null && action.getUserRetryCount() == 2);
+                return false;
             }
         });
 
@@ -167,26 +166,53 @@ public class TestWorkflowActionRetryInfoXCommand extends XDataTestCase {
             }
         }
 
-        WorkflowActionRetryInfoXCommand command = new WorkflowActionRetryInfoXCommand(action1.getId());
-        List<Map<String, String>> retriesList = command.call();
-        assertEquals(2, retriesList.size());
-        assertEquals(2, action1.getUserRetryCount());
+        List<Map<String, String>> retries1List = getRetryList(action1);
+        int retries1Num = retries1List == null ? 0 : retries1List.size();
 
-        assertEquals(retriesList.get(0).get(JsonTags.ACTION_ATTEMPT), "1");
-        assertEquals(retriesList.get(0).get(JsonTags.WORKFLOW_ACTION_START_TIME),
-                JsonUtils.formatDateRfc822(action1.getStartTime()));
+        List<Map<String, String>> retries2List = getRetryList(action2);
+        int retries2Num = retries2List == null ? 0 : retries2List.size();
 
-        assertNotNull(retriesList.get(0).get(JsonTags.WORKFLOW_ACTION_CONSOLE_URL));
-        assertNotNull(retriesList.get(0).get(JsonTags.WORKFLOW_ACTION_EXTERNAL_CHILD_IDS));
+        assertTrue( String.format("Invalid number of retries %d and %d", retries1Num, retries2Num),
+                retries1Num == 2 || retries2Num == 2);
 
-        assertNotNull(retriesList.get(1).get(JsonTags.WORKFLOW_ACTION_CONSOLE_URL));
-        assertNotNull(retriesList.get(1).get(JsonTags.WORKFLOW_ACTION_EXTERNAL_CHILD_IDS));
+        if (retries1List != null) {
+            assertEquals("Invalid action attempt", retries1List.get(0).get(JsonTags.ACTION_ATTEMPT), "1");
+            assertEquals("Invalid workflow action start time", retries1List.get(0).get(JsonTags.WORKFLOW_ACTION_START_TIME),
+                    JsonUtils.formatDateRfc822(action1.getStartTime()));
+            for (Map<String,String> retry : retries1List) {
+                assertNotNull("Workflow action console URL should not be null", retry.get(JsonTags.WORKFLOW_ACTION_CONSOLE_URL));
+                assertNotNull("Missing external child ids", retry.get(JsonTags.WORKFLOW_ACTION_EXTERNAL_CHILD_IDS));
+            }
+            if (retries1List.size() >= 2) {
+                final Date action1EndTime = action1.getEndTime();
+                final Date secondRetry1EndTime = JsonUtils.parseDateRfc822(retries1List.get(1).get(
+                        JsonTags.WORKFLOW_ACTION_END_TIME));
+                assertTrue("action end time should be within ten seconds of second retry end time",
+                        new Interval(secondRetry1EndTime.getTime(), secondRetry1EndTime.getTime() + 10_000)
+                                .contains(action1EndTime.getTime()));
+            }
+        }
 
-        final Date actionEndTime = action2 == null ? action1.getEndTime() : action2.getEndTime();
-        final Date secondRetryEndTime = JsonUtils.parseDateRfc822(retriesList.get(1).get(JsonTags.WORKFLOW_ACTION_END_TIME));
+        if (retries2List != null) {
+            assertEquals("Invalid action attempt", retries2List.get(0).get(JsonTags.ACTION_ATTEMPT), "1");
+            assertEquals("Invalid workflow action start time", retries2List.get(0).get(JsonTags.WORKFLOW_ACTION_START_TIME),
+                    JsonUtils.formatDateRfc822(action2.getStartTime()));
+            if (retries2List.size() >= 2) {
+                final Date action2EndTime = action2.getEndTime();
+                final Date secondRetry2EndTime = JsonUtils.parseDateRfc822(retries2List.get(1).get(
+                        JsonTags.WORKFLOW_ACTION_END_TIME));
+                assertTrue("action end time should be within ten seconds of second retry end time",
+                        new Interval(secondRetry2EndTime.getTime(), secondRetry2EndTime.getTime() + 10_000)
+                                .contains(action2EndTime.getTime()));
+            }
+        }
+    }
 
-        assertTrue("action end time should be within ten seconds of second retry end time",
-                new Interval(secondRetryEndTime.getTime(), secondRetryEndTime.getTime() + 10_000)
-                        .contains(actionEndTime.getTime()));
+    private List<Map<String, String>> getRetryList(WorkflowActionBean action) throws CommandException {
+        if (action == null) {
+            return null;
+        }
+        WorkflowActionRetryInfoXCommand command = new WorkflowActionRetryInfoXCommand(action.getId());
+        return command.call();
     }
 }

http://git-wip-us.apache.org/repos/asf/oozie/blob/7ef418f7/release-log.txt
----------------------------------------------------------------------
diff --git a/release-log.txt b/release-log.txt
index 681acb2..6e30b3e 100644
--- a/release-log.txt
+++ b/release-log.txt
@@ -1,5 +1,6 @@
 -- Oozie 5.2.0 release (trunk - unreleased)
 
+OOZIE-3384 [tests] TestWorkflowActionRetryInfoXCommand#testRetryConsoleUrlForked() is flaky (asalamon74 via kmarton)
 OOZIE-3386 Misleading error message when workflow application does not exist (kmarton)
 OOZIE-3120 Upgrade maven-assembly plugin to v.3.1.0 (dionusos via kmarton)
 OOZIE-3381 [coordinator] Enhance logging of CoordElFunctions (andras.piros via kmarton)