You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/01/07 02:04:21 UTC

[pulsar] branch branch-2.7 updated: Fix DelayedDelivery at the broker level has a default value (#9030)

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


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 5fb9eaa  Fix DelayedDelivery at the broker level has a default value (#9030)
5fb9eaa is described below

commit 5fb9eaa905c9ae553823347504a6a37b56a8432b
Author: feynmanlin <fe...@tencent.com>
AuthorDate: Wed Dec 23 21:28:53 2020 +0800

    Fix DelayedDelivery at the broker level has a default value (#9030)
    
    ### Motivation
    
    `delayedDeliveryEnabled` at the broker level is enabled by default, but at the namespace level is not set.
    But now the value can be obtained directly through `admin.namespaces().getDelayedDelivery(namespace)`.
    This makes users very confused, we did not set the policy, but it has value.
    Therefore, `null` should be returned by default
    
    (cherry picked from commit 6e74a9bdf6029130c8ff75996f1e8734e2e5af7c)
---
 .../java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java | 9 +--------
 .../org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java  | 9 ++++++---
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
index 208902e..e091616 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java
@@ -2117,14 +2117,7 @@ public abstract class NamespacesBase extends AdminResource {
 
     protected DelayedDeliveryPolicies internalGetDelayedDelivery() {
         validateNamespacePolicyOperation(namespaceName, PolicyName.DELAYED_DELIVERY, PolicyOperation.READ);
-
-        Policies policies = getNamespacePolicies(namespaceName);
-        if (policies.delayed_delivery_policies == null) {
-            return new DelayedDeliveryPolicies(config().getDelayedDeliveryTickTimeMillis(),
-                    config().isDelayedDeliveryEnabled());
-        } else {
-            return policies.delayed_delivery_policies;
-        }
+        return getNamespacePolicies(namespaceName).delayed_delivery_policies;
     }
 
     protected InactiveTopicPolicies internalGetInactiveTopic() {
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
index 00d9f21..045d973 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiDelayedDelivery.java
@@ -26,6 +26,7 @@ import org.apache.pulsar.client.api.*;
 import org.apache.pulsar.common.policies.data.ClusterData;
 import org.apache.pulsar.common.policies.data.DelayedDeliveryPolicies;
 import org.apache.pulsar.common.policies.data.TenantInfo;
+import org.awaitility.Awaitility;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.testng.annotations.AfterMethod;
@@ -63,11 +64,13 @@ public class AdminApiDelayedDelivery extends MockedPulsarServiceBaseTest {
     public void testDisableDelayedDelivery() throws Exception {
         admin.namespaces().createNamespace("delayed-delivery-messages/default-ns");
         String namespace = "delayed-delivery-messages/default-ns";
-        assertTrue(admin.namespaces().getDelayedDelivery(namespace).isActive());
+        assertNull(admin.namespaces().getDelayedDelivery(namespace));
 
         DelayedDeliveryPolicies delayedDeliveryPolicies = new DelayedDeliveryPolicies(2000, false);
         admin.namespaces().setDelayedDeliveryMessages(namespace, delayedDeliveryPolicies);
-
+        //zk update takes time
+        Awaitility.await().atMost(3, TimeUnit.SECONDS).until(() ->
+                admin.namespaces().getDelayedDelivery(namespace) != null);
         assertFalse(admin.namespaces().getDelayedDelivery(namespace).isActive());
         assertEquals(2000, admin.namespaces().getDelayedDelivery(namespace).getTickTime());
     }
@@ -77,7 +80,7 @@ public class AdminApiDelayedDelivery extends MockedPulsarServiceBaseTest {
         admin.namespaces().createNamespace("delayed-delivery-messages/default-enable-service-conf");
         String namespace = "delayed-delivery-messages/default-enable-service-conf";
         String topicName = "persistent://delayed-delivery-messages/default-enable-service-conf/test";
-        assertTrue(admin.namespaces().getDelayedDelivery(namespace).isActive());
+        assertNull(admin.namespaces().getDelayedDelivery(namespace));
 
         @Cleanup
         Consumer<String> consumer = pulsarClient.newConsumer(Schema.STRING)