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();
}