This is an automated email from the ASF dual-hosted git repository.
jlli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git
The following commit(s) were added to refs/heads/master by this push:
new 3ff4d13af7 Retry validateJobs for a while to avoid flaky errors (#8999)
3ff4d13af7 is described below
commit 3ff4d13af7b693ec8f4766bbc281c1b3034621ba
Author: Gonzalo Ortiz Jaureguizar <[email protected]>
AuthorDate: Mon Jul 4 20:16:27 2022 +0200
Retry validateJobs for a while to avoid flaky errors (#8999)
* Retry validateJobs for a while to avoid flaky errors
* replace waitForResult with waitForCondition as recommended in PR
* Fix checkstyle
---
.../core/minion/PinotTaskManagerStatelessTest.java | 23 ++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
index 84a1a5d6a7..cf41d1114e 100644
---
a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
+++
b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/minion/PinotTaskManagerStatelessTest.java
@@ -41,6 +41,8 @@ import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.matchers.GroupMatcher;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -53,6 +55,7 @@ public class PinotTaskManagerStatelessTest extends
ControllerTest {
private static final String RAW_TABLE_NAME = "myTable";
private static final String OFFLINE_TABLE_NAME =
TableNameBuilder.OFFLINE.tableNameWithType(RAW_TABLE_NAME);
private static final long TIMEOUT_IN_MS = 10_000L;
+ private static final Logger LOGGER =
LoggerFactory.getLogger(PinotTaskManagerStatelessTest.class);
@BeforeClass
public void setUp()
@@ -239,10 +242,22 @@ public class PinotTaskManagerStatelessTest extends
ControllerTest {
throw new RuntimeException(e);
}
}, TIMEOUT_IN_MS, "JobDetail exiting but missing JobTrigger");
- List<? extends Trigger> triggersOfJob = scheduler.getTriggersOfJob(jobKey);
- Trigger trigger = triggersOfJob.iterator().next();
- assertTrue(trigger instanceof CronTrigger);
- assertEquals(((CronTrigger) trigger).getCronExpression(), cronExpression);
+
+ // There is no guarantee that previous changes have been applied,
therefore we need to
+ // retry the check for a bit
+ TestUtils.waitForCondition(aVoid -> {
+ try {
+ List<? extends Trigger> triggersOfJob =
scheduler.getTriggersOfJob(jobKey);
+ Trigger trigger = triggersOfJob.iterator().next();
+ assertTrue(trigger instanceof CronTrigger);
+ assertEquals(((CronTrigger) trigger).getCronExpression(),
cronExpression);
+ } catch (SchedulerException ex) {
+ throw new RuntimeException(ex);
+ } catch (AssertionError assertionError) {
+ LOGGER.warn("Unexpected cron expression. Hasn't been replicated yet?",
assertionError);
+ }
+ return true;
+ }, TIMEOUT_IN_MS, 500L, "Cron expression didn't change to " +
cronExpression);
}
@AfterClass
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]