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)