This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.8 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 6f44d5cf3af817a60ac72a2c15378f58fe688d32 Author: Enrico Olivelli <[email protected]> AuthorDate: Thu Jun 17 20:52:38 2021 +0200 Make Metadata Tests less Flaky (#10955) Co-authored-by: Enrico Olivelli <[email protected]> (cherry picked from commit 21ea76c15531976326e7319e551646ab698f9bc7) --- pulsar-metadata/pom.xml | 7 ++++++- .../org/apache/pulsar/metadata/ZKSessionTest.java | 23 ++++++++++++---------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/pulsar-metadata/pom.xml b/pulsar-metadata/pom.xml index e18a75e..c61e41e 100644 --- a/pulsar-metadata/pom.xml +++ b/pulsar-metadata/pom.xml @@ -31,7 +31,6 @@ <artifactId>pulsar-metadata</artifactId> <name>Pulsar Metadata</name> - <dependencies> <dependency> <groupId>org.apache.pulsar</groupId> @@ -59,6 +58,12 @@ </dependency> <dependency> + <groupId>org.awaitility</groupId> + <artifactId>awaitility</artifactId> + <scope>test</scope> + </dependency> + + <dependency> <groupId>org.apache.bookkeeper</groupId> <artifactId>bookkeeper-server</artifactId> </dependency> diff --git a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/ZKSessionTest.java b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/ZKSessionTest.java index f565a8f..24c4bd7 100644 --- a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/ZKSessionTest.java +++ b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/ZKSessionTest.java @@ -26,7 +26,6 @@ import static org.testng.Assert.assertTrue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; -import java.util.function.Consumer; import lombok.Cleanup; @@ -40,6 +39,7 @@ import org.apache.pulsar.metadata.api.extended.MetadataStoreExtended; import org.apache.pulsar.metadata.api.extended.SessionEvent; import org.apache.pulsar.metadata.coordination.impl.CoordinationServiceImpl; import org.apache.pulsar.metadata.impl.ZKMetadataStore; +import org.awaitility.Awaitility; import org.testng.annotations.Test; public class ZKSessionTest extends BaseMetadataStoreTest { @@ -61,10 +61,10 @@ public class ZKSessionTest extends BaseMetadataStoreTest { assertEquals(e, SessionEvent.ConnectionLost); zks.start(); - e = sessionEvents.poll(10, TimeUnit.SECONDS); + e = sessionEvents.poll(20, TimeUnit.SECONDS); assertEquals(e, SessionEvent.Reconnected); - e = sessionEvents.poll(1, TimeUnit.SECONDS); + e = sessionEvents.poll(5, TimeUnit.SECONDS); assertNull(e); } @@ -130,9 +130,9 @@ public class ZKSessionTest extends BaseMetadataStoreTest { e = sessionEvents.poll(10, TimeUnit.SECONDS); assertEquals(e, SessionEvent.SessionReestablished); - Thread.sleep(2_000); - - assertFalse(lock.getLockExpiredFuture().isDone()); + Awaitility.await().untilAsserted(() -> { + assertFalse(lock.getLockExpiredFuture().isDone()); + }); assertTrue(store.get(path).join().isPresent()); } @@ -171,7 +171,10 @@ public class ZKSessionTest extends BaseMetadataStoreTest { e = sessionEvents.poll(10, TimeUnit.SECONDS); assertEquals(e, SessionEvent.SessionLost); - assertEquals(le1.getState(), LeaderElectionState.Leading); + Awaitility.await().untilAsserted(() -> { + assertEquals(le1.getState(), LeaderElectionState.Leading); + }); + les = leaderElectionEvents.poll(); assertNull(les); @@ -180,9 +183,9 @@ public class ZKSessionTest extends BaseMetadataStoreTest { e = sessionEvents.poll(10, TimeUnit.SECONDS); assertEquals(e, SessionEvent.SessionReestablished); - Thread.sleep(2_000); - - assertEquals(le1.getState(), LeaderElectionState.Leading); + Awaitility.await().untilAsserted(() -> { + assertEquals(le1.getState(), LeaderElectionState.Leading); + }); les = leaderElectionEvents.poll(); assertNull(les);
