You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fr...@apache.org on 2026/10/09 06:02:42 UTC

(druid) branch master updated: test: fix flaky ScheduledExecutorsTest.testscheduleWithFixedDelay (#20526)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 805a5426720 test: fix flaky ScheduledExecutorsTest.testscheduleWithFixedDelay (#20526)
805a5426720 is described below

commit 805a5426720f492718b73f0c4de1e74db3bcd178
Author: Yahya Kisana <39...@users.noreply.github.com>
AuthorDate: Fri Oct 9 00:02:35 2026 -0600

    test: fix flaky ScheduledExecutorsTest.testscheduleWithFixedDelay (#20526)
    
    * test: fix flaky ScheduledExecutorsTest.testscheduleWithFixedDelay
    
    * fix comment punctuation
---
 .../java/util/common/concurrent/ScheduledExecutorsTest.java   | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/processing/src/test/java/org/apache/druid/java/util/common/concurrent/ScheduledExecutorsTest.java b/processing/src/test/java/org/apache/druid/java/util/common/concurrent/ScheduledExecutorsTest.java
index 8fe6eccbb4b..55f00e2a6cb 100644
--- a/processing/src/test/java/org/apache/druid/java/util/common/concurrent/ScheduledExecutorsTest.java
+++ b/processing/src/test/java/org/apache/druid/java/util/common/concurrent/ScheduledExecutorsTest.java
@@ -44,7 +44,7 @@ public class ScheduledExecutorsTest
     List<Long> taskStartTimes = new ArrayList<>();
     AtomicInteger executionCount = new AtomicInteger(0);
     CountDownLatch latch = new CountDownLatch(1);
-    long startTime = System.currentTimeMillis();
+    final long startTime = System.nanoTime();
 
     ScheduledExecutors.scheduleWithFixedDelay(
         exec,
@@ -52,7 +52,7 @@ public class ScheduledExecutorsTest
         delay,
         () -> {
           try {
-            long taskStart = System.currentTimeMillis();
+            final long taskStart = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startTime);
             int count = executionCount.getAndIncrement();
             synchronized (taskStartTimes) {
               taskStartTimes.add(taskStart);
@@ -78,10 +78,11 @@ public class ScheduledExecutorsTest
     Assertions.assertTrue(completed, "Should complete within timeout");
     Assertions.assertEquals(4, executionCount.get(), "Should have exactly 4 executions");
 
-    // Verify first task starts at approximately the initial delay, in real life this is greater than 100ms due to overhead.
-    long firstTaskStart = taskStartTimes.get(0) - startTime;
+    // Verify first task starts at approximately the initial delay.
+    // It can fire exactly on time, so the 100ms lower bound is inclusive.
+    final long firstTaskStart = taskStartTimes.get(0);
     Assertions.assertTrue(
-        firstTaskStart > 100 && firstTaskStart < 500,
+        firstTaskStart >= 100 && firstTaskStart < 500,
         "First task should start at approximately initial delay (100ms), was: " + firstTaskStart
     );
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org