This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new aabd5d02054 [fix][flaky-test] Fix failed test
NonPersistentTopicE2ETest.testGCWillDeleteSchema (#16381)
aabd5d02054 is described below
commit aabd5d020543210921f10648caf6720adc41d651
Author: lipenghui <[email protected]>
AuthorDate: Tue Jul 5 10:38:53 2022 +0800
[fix][flaky-test] Fix failed test
NonPersistentTopicE2ETest.testGCWillDeleteSchema (#16381)
---
.../broker/service/NonPersistentTopicE2ETest.java | 51 +++++++++++-----------
1 file changed, 26 insertions(+), 25 deletions(-)
diff --git
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/NonPersistentTopicE2ETest.java
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/NonPersistentTopicE2ETest.java
index 0e598f22f1d..fb1dbfea3f1 100644
---
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/NonPersistentTopicE2ETest.java
+++
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/NonPersistentTopicE2ETest.java
@@ -83,7 +83,7 @@ public class NonPersistentTopicE2ETest extends BrokerTestBase
{
@Test(groups = "broker")
public void testGCWillDeleteSchema() throws Exception {
// 1. Simple successful GC
- String topicName = "non-persistent://prop/ns-abc/topic-1";
+ final String topicName = "non-persistent://prop/ns-abc/topic-1";
Producer<byte[]> producer =
pulsarClient.newProducer().topic(topicName).create();
producer.close();
@@ -100,56 +100,57 @@ public class NonPersistentTopicE2ETest extends
BrokerTestBase {
assertTrue(topicHasSchema(topicName));
runGC();
- topic = getTopic(topicName);
- assertFalse(topic.isPresent());
+ Awaitility.await().untilAsserted(() -> {
+ assertFalse(getTopic(topicName).isPresent());
+ });
assertFalse(topicHasSchema(topicName));
// 1a. Topic that add/removes subscription can be GC'd
- topicName = "non-persistent://prop/ns-abc/topic-1a";
+ final String topicName2 = "non-persistent://prop/ns-abc/topic-1a";
String subName = "sub1";
- Consumer<byte[]> consumer =
pulsarClient.newConsumer().topic(topicName).subscriptionName(subName).subscribe();
- topic = getTopic(topicName);
+ Consumer<byte[]> consumer =
pulsarClient.newConsumer().topic(topicName2).subscriptionName(subName).subscribe();
+ topic = getTopic(topicName2);
assertTrue(topic.isPresent());
topic.get().addSchema(schemaData).join();
- assertTrue(topicHasSchema(topicName));
+ assertTrue(topicHasSchema(topicName2));
- admin.topics().deleteSubscription(topicName, subName);
+ admin.topics().deleteSubscription(topicName2, subName);
consumer.close();
runGC();
- topic = getTopic(topicName);
- assertFalse(topic.isPresent());
- assertFalse(topicHasSchema(topicName));
+ Awaitility.await().untilAsserted(() -> {
+ assertFalse(getTopic(topicName2).isPresent());
+ });
+ assertFalse(topicHasSchema(topicName2));
// 2. Topic is not GCed with live connection
- topicName = "non-persistent://prop/ns-abc/topic-2";
+ final String topicName3 = "non-persistent://prop/ns-abc/topic-2";
subName = "sub1";
- consumer =
pulsarClient.newConsumer().topic(topicName).subscriptionName(subName).subscribe();
- topic = getTopic(topicName);
+ consumer =
pulsarClient.newConsumer().topic(topicName3).subscriptionName(subName).subscribe();
+ topic = getTopic(topicName3);
assertTrue(topic.isPresent());
topic.get().addSchema(schemaData).join();
- assertTrue(topicHasSchema(topicName));
+ assertTrue(topicHasSchema(topicName3));
runGC();
- topic = getTopic(topicName);
- assertTrue(topic.isPresent());
- assertTrue(topicHasSchema(topicName));
+ assertTrue(getTopic(topicName3).isPresent());
+ assertTrue(topicHasSchema(topicName3));
// 3. Topic with subscription is not GCed even with no connections
consumer.close();
runGC();
- topic = getTopic(topicName);
- assertTrue(topic.isPresent());
- assertTrue(topicHasSchema(topicName));
+ assertTrue(getTopic(topicName3).isPresent());
+ assertTrue(topicHasSchema(topicName3));
// 4. Topic can be GCed after unsubscribe
- admin.topics().deleteSubscription(topicName, subName);
+ admin.topics().deleteSubscription(topicName3, subName);
runGC();
- topic = getTopic(topicName);
- assertFalse(topic.isPresent());
- assertFalse(topicHasSchema(topicName));
+ Awaitility.await().untilAsserted(() -> {
+ assertFalse(getTopic(topicName3).isPresent());
+ });
+ assertFalse(topicHasSchema(topicName3));
}
@Test(groups = "broker")