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 8c25d2509cb Avoid potentially blocking calls to metadata in 
PersistentTopic#getMessageTTL (#16899)
8c25d2509cb is described below

commit 8c25d2509cbe9f385b5e386d58b429b081ffe60f
Author: JiangHaiting <[email protected]>
AuthorDate: Wed Aug 3 09:26:26 2022 +0800

    Avoid potentially blocking calls to metadata in 
PersistentTopic#getMessageTTL (#16899)
---
 .../java/org/apache/pulsar/broker/admin/impl/NamespacesBase.java   | 1 -
 .../apache/pulsar/broker/service/persistent/PersistentTopic.java   | 7 +++++--
 2 files changed, 5 insertions(+), 3 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 2b6e793a951..9dbce63ee3d 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
@@ -829,7 +829,6 @@ public abstract class NamespacesBase extends AdminResource {
             // Write back the new policies into zookeeper
             globalZk().setData(path(POLICIES, namespaceName.toString()),
                     jsonMapper().writeValueAsBytes(policiesNode.getKey()), 
policiesNode.getValue().getVersion());
-            policiesCache().invalidate(path(POLICIES, 
namespaceName.toString()));
 
             log.info("[{}] Successfully updated the message TTL on namespace 
{}", clientAppId(), namespaceName);
         } catch (KeeperException.NoNodeException e) {
diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
index 48a3714ff9d..86e5f8dddc1 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentTopic.java
@@ -2480,8 +2480,11 @@ public class PersistentTopic extends AbstractTopic 
implements Topic, AddEntryCal
         TopicName name = TopicName.get(topic);
         TopicPolicies topicPolicies = getTopicPolicies(name);
         Policies policies = 
brokerService.pulsar().getConfigurationCache().policiesCache()
-                .get(AdminResource.path(POLICIES, 
TopicName.get(topic).getNamespace()))
-                .orElseThrow(() -> new KeeperException.NoNodeException());
+                .getDataIfPresent(AdminResource.path(POLICIES, 
name.getNamespace()));
+        if (policies == null) {
+            log.error("policies is null in getMessageTTL");
+            throw new KeeperException.NoNodeException();
+        }
         if (topicPolicies != null && topicPolicies.isMessageTTLSet()) {
             return topicPolicies.getMessageTTLInSeconds();
         }

Reply via email to