This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.7 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 35a1b75ce52773e2c68d4093f9e37cb818778ac5 Author: feynmanlin <feynman...@tencent.com> AuthorDate: Tue Jun 22 12:03:52 2021 +0800 Fix flaky test testEnableAndDisableTopicDelayedDelivery (#11009) When admin.topics().getDelayedDeliveryPolicy(topicName) is executed, topicPolicies may not be initialized yet This problem occurs when only a single unit test is executed. When the entire unit test is executed, it rarely appears, because other unit tests initialize the TopicPolicies under this Namespace (cherry picked from commit 96b293a4224290abff8efe8a817eb1f2f3b2eab6) --- .../pulsar/broker/service/persistent/DelayedDeliveryTest.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/DelayedDeliveryTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/DelayedDeliveryTest.java index 799d7f1..45cb1e6 100644 --- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/DelayedDeliveryTest.java +++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/persistent/DelayedDeliveryTest.java @@ -43,6 +43,7 @@ import org.apache.pulsar.client.api.ProducerConsumerBase; import org.apache.pulsar.client.api.PulsarClientException; import org.apache.pulsar.client.api.Schema; import org.apache.pulsar.client.api.SubscriptionType; +import org.apache.pulsar.common.naming.TopicName; import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies; import org.awaitility.Awaitility; import org.testng.Assert; @@ -330,9 +331,12 @@ public class DelayedDeliveryTest extends ProducerConsumerBase { @Test(timeOut = 20000) public void testEnableAndDisableTopicDelayedDelivery() throws Exception { - String topicName = "persistent://public/default/topic-" + UUID.randomUUID().toString(); + String topicName = "persistent://public/default/topic-" + UUID.randomUUID(); admin.topics().createPartitionedTopic(topicName, 3); + pulsarClient.newProducer().topic(topicName).create().close(); + Awaitility.await().untilAsserted(() -> pulsar.getTopicPoliciesService() + .cacheIsInitialized(TopicName.get(topicName))); assertNull(admin.topics().getDelayedDeliveryPolicy(topicName)); DelayedDeliveryPolicies delayedDeliveryPolicies = new DelayedDeliveryPolicies(2000, false); admin.topics().setDelayedDeliveryPolicy(topicName, delayedDeliveryPolicies); @@ -363,6 +367,9 @@ public class DelayedDeliveryTest extends ProducerConsumerBase { final String topicName = "persistent://public/default/test" + UUID.randomUUID().toString(); admin.topics().createPartitionedTopic(topicName, 3); + pulsarClient.newProducer().topic(topicName).create().close(); + Awaitility.await().untilAsserted(() -> pulsar.getTopicPoliciesService() + .cacheIsInitialized(TopicName.get(topicName))); assertNull(admin.topics().getDelayedDeliveryPolicy(topicName)); //1 Set topic policy DelayedDeliveryPolicies delayedDeliveryPolicies = new DelayedDeliveryPolicies(2000, true);