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 2020/12/23 13:29:13 UTC

[pulsar] branch master 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 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 6e74a9b  Fix DelayedDelivery at the broker level has a default value (#9030)
6e74a9b is described below

commit 6e74a9bdf6029130c8ff75996f1e8734e2e5af7c
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
---
 .../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 da65977..e7f5d2e 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
@@ -2193,14 +2193,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)