You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2020/08/04 21:14:37 UTC

[helix] 01/10: Fix the flaky test TestRecurringJobQueue.testCreateStoppedQueue (#983)

This is an automated email from the ASF dual-hosted git repository.

jxue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git

commit 813e49ec8816d6fa2794353155891d341a2512c1
Author: Ali Reza Zamani Zadeh Najari <an...@linkedin.com>
AuthorDate: Mon May 4 10:37:43 2020 -0700

    Fix the flaky test TestRecurringJobQueue.testCreateStoppedQueue (#983)
    
    In this commit, the necessary checks have been added to make sure
    we do not hit NullPointerException when checking LastScheduledWorkflow.
---
 .../helix/integration/task/TestRecurringJobQueue.java      | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/helix-core/src/test/java/org/apache/helix/integration/task/TestRecurringJobQueue.java b/helix-core/src/test/java/org/apache/helix/integration/task/TestRecurringJobQueue.java
index 6bf5a92..20c53b1 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/task/TestRecurringJobQueue.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/task/TestRecurringJobQueue.java
@@ -223,7 +223,7 @@ public class TestRecurringJobQueue extends TaskTestBase {
   }
 
   @Test
-  public void testCreateStoppedQueue() throws InterruptedException {
+  public void testCreateStoppedQueue() throws Exception {
     String queueName = TestHelper.getTestMethodName();
 
     // Create a queue
@@ -238,12 +238,14 @@ public class TestRecurringJobQueue extends TaskTestBase {
 
     _driver.resume(queueName);
 
-    //TaskTestUtil.pollForWorkflowState(_driver, queueName, );
-    WorkflowContext wCtx = TaskTestUtil.pollForWorkflowContext(_driver, queueName);
+    // ensure LAST_SCHEDULED_WORKFLOW field is written to Zookeeper
+    Assert.assertTrue(TestHelper.verify(() -> {
+      WorkflowContext wCtx = TaskTestUtil.pollForWorkflowContext(_driver, queueName);
+      return wCtx.getLastScheduledSingleWorkflow() != null;
+    }, TestHelper.WAIT_DURATION));
 
-    // ensure current schedule is started
-    String scheduledQueue = wCtx.getLastScheduledSingleWorkflow();
-    _driver.pollForWorkflowState(scheduledQueue, TaskState.COMPLETED);
+    WorkflowContext wCtx = TaskTestUtil.pollForWorkflowContext(_driver, queueName);
+    _driver.pollForWorkflowState(wCtx.getLastScheduledSingleWorkflow(), TaskState.COMPLETED);
   }
 
   @Test