From 0ec3a16bbd4cf8d70fd29d6e0f742bbac7ffd4fd Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Fri, 12 Jul 2019 19:00:13 +0800 Subject: [PATCH] Fix Java MultithreadingTest (#5182) --- java/test/src/main/java/org/ray/api/TestUtils.java | 7 ++++++- .../src/main/java/org/ray/api/test/MultiThreadingTest.java | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/java/test/src/main/java/org/ray/api/TestUtils.java b/java/test/src/main/java/org/ray/api/TestUtils.java index 3636c93e4..3badb1104 100644 --- a/java/test/src/main/java/org/ray/api/TestUtils.java +++ b/java/test/src/main/java/org/ray/api/TestUtils.java @@ -51,7 +51,12 @@ public class TestUtils { } /** - * Warm up the cluster. + * Warm up the cluster to make sure there's at least one idle worker. + * + * This is needed before calling `wait`. Because, in Travis CI, starting a new worker + * process could be slower than the wait timeout. + * TODO(hchen): We should consider supporting always reversing a certain number of + * idle workers in Raylet's worker pool. */ public static void warmUpCluster() { RayObject obj = Ray.call(TestUtils::hi); diff --git a/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java b/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java index 9120f8ba5..b9e76add1 100644 --- a/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java +++ b/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java @@ -81,10 +81,11 @@ public class MultiThreadingTest extends BaseTest { Assert.assertEquals(arg, (int) Ray.get(obj.getId())); }, LOOP_COUNTER); + TestUtils.warmUpCluster(); // Test wait for one object in multi threads. RayObject obj = Ray.call(MultiThreadingTest::echo, 100); runTestCaseInMultipleThreads(() -> { - WaitResult result = Ray.wait(ImmutableList.of(obj), 1, 2000); + WaitResult result = Ray.wait(ImmutableList.of(obj), 1, 1000); Assert.assertEquals(1, result.getReady().size()); }, 1);