You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2022/11/25 09:13:34 UTC

[pulsar] branch master updated: [fix][test] Fix flaky NamespacesTest.testSetOffloadThreshold (#18628)

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

lhotari 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 355ba6002fc [fix][test] Fix flaky NamespacesTest.testSetOffloadThreshold (#18628)
355ba6002fc is described below

commit 355ba6002fc33b2716f59ca5d3a4fac667ecf3e1
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Fri Nov 25 11:13:27 2022 +0200

    [fix][test] Fix flaky NamespacesTest.testSetOffloadThreshold (#18628)
---
 .../apache/pulsar/broker/admin/NamespacesTest.java | 45 ++++++++--------------
 1 file changed, 15 insertions(+), 30 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/NamespacesTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/NamespacesTest.java
index 2b0a8c60b69..05a86dc06e2 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/NamespacesTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/NamespacesTest.java
@@ -1457,46 +1457,25 @@ public class NamespacesTest extends MockedPulsarServiceBaseTest {
         TopicName topicName = TopicName.get("persistent", this.testTenant, "offload", "offload-topic");
         String namespace =  topicName.getNamespaceObject().toString();
         System.out.println(namespace);
-        // set a default
-        pulsar.getConfiguration().setManagedLedgerOffloadAutoTriggerSizeThresholdBytes(1);
-        pulsar.getConfiguration().setManagedLedgerOffloadThresholdInSeconds(100);
         // create the namespace
         admin.namespaces().createNamespace(namespace, Set.of(testLocalCluster));
         admin.topics().createNonPartitionedTopic(topicName.toString());
 
         admin.namespaces().setOffloadDeleteLag(namespace, 10000, TimeUnit.SECONDS);
+        // assert we get -1 which indicates it will fall back to default
         assertEquals(admin.namespaces().getOffloadThreshold(namespace), -1);
         assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), -1);
 
-        // assert we get the default which indicates it will fall back to default
-        assertEquals(admin.namespaces().getOffloadThreshold(namespace), -1);
-        assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), -1);
-        // the ledger config should have the expected value
-        ManagedLedgerConfig ledgerConf = pulsar.getBrokerService().getManagedLedgerConfig(topicName).get();
-        MockLedgerOffloader offloader = new MockLedgerOffloader(OffloadPoliciesImpl.create("S3", "", "", "",
-                null, null,
-                null, null,
-                OffloadPoliciesImpl.DEFAULT_MAX_BLOCK_SIZE_IN_BYTES,
-                OffloadPoliciesImpl.DEFAULT_READ_BUFFER_SIZE_IN_BYTES,
-                admin.namespaces().getOffloadThreshold(namespace),
-                admin.namespaces().getOffloadThresholdInSeconds(namespace),
-                pulsar.getConfiguration().getManagedLedgerOffloadDeletionLagMs(),
-                OffloadPoliciesImpl.DEFAULT_OFFLOADED_READ_PRIORITY));
-        ledgerConf.setLedgerOffloader(offloader);
-        assertEquals(ledgerConf.getLedgerOffloader().getOffloadPolicies().getManagedLedgerOffloadThresholdInBytes(),
-                Long.valueOf(-1));
-        assertEquals(ledgerConf.getLedgerOffloader().getOffloadPolicies().getManagedLedgerOffloadThresholdInSeconds(),
-                Long.valueOf(-1));
-
-
         // set an override for the namespace
         admin.namespaces().setOffloadThreshold(namespace, 100);
         admin.namespaces().setOffloadThresholdInSeconds(namespace, 100);
-        assertEquals(admin.namespaces().getOffloadThreshold(namespace), 100);
-        assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), 100);
-        ledgerConf = pulsar.getBrokerService().getManagedLedgerConfig(topicName).get();
+        Awaitility.await().untilAsserted(() -> {
+                    assertEquals(admin.namespaces().getOffloadThreshold(namespace), 100);
+                    assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), 100);
+                });
+        ManagedLedgerConfig ledgerConf = pulsar.getBrokerService().getManagedLedgerConfig(topicName).get();
         admin.namespaces().getOffloadPolicies(namespace);
-        offloader = new MockLedgerOffloader(OffloadPoliciesImpl.create("S3", "", "", "",
+        MockLedgerOffloader offloader = new MockLedgerOffloader(OffloadPoliciesImpl.create("S3", "", "", "",
                 null, null,
                 null, null,
                 OffloadPoliciesImpl.DEFAULT_MAX_BLOCK_SIZE_IN_BYTES,
@@ -1514,7 +1493,10 @@ public class NamespacesTest extends MockedPulsarServiceBaseTest {
         // set another negative value to disable
         admin.namespaces().setOffloadThreshold(namespace, -2);
         admin.namespaces().setOffloadThresholdInSeconds(namespace, -2);
-        assertEquals(-2, admin.namespaces().getOffloadThreshold(namespace));
+        Awaitility.await().untilAsserted(() -> {
+                    assertEquals(admin.namespaces().getOffloadThreshold(namespace), -2);
+                    assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), -2);
+                });
         ledgerConf = pulsar.getBrokerService().getManagedLedgerConfig(topicName).get();
         offloader = new MockLedgerOffloader(OffloadPoliciesImpl.create("S3", "", "", "",
                 null, null,
@@ -1534,7 +1516,10 @@ public class NamespacesTest extends MockedPulsarServiceBaseTest {
         // set back to -1 and fall back to default
         admin.namespaces().setOffloadThreshold(namespace, -1);
         admin.namespaces().setOffloadThresholdInSeconds(namespace, -1);
-        assertEquals(-1, admin.namespaces().getOffloadThreshold(namespace));
+        Awaitility.await().untilAsserted(() -> {
+                    assertEquals(admin.namespaces().getOffloadThreshold(namespace), -1);
+                    assertEquals(admin.namespaces().getOffloadThresholdInSeconds(namespace), -1);
+                });
         ledgerConf = pulsar.getBrokerService().getManagedLedgerConfig(topicName).get();
         offloader = new MockLedgerOffloader(OffloadPoliciesImpl.create("S3", "", "", "",
                 null, null,