This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git

commit bbed232f10bfdf44bf288c27610a71d99a922aa9
Author: ran <[email protected]>
AuthorDate: Thu Sep 2 09:44:17 2021 +0800

    [Broker] Refine topic level backlog quota policies warning log (#11863)
    
    ### Motivation
    
    Currently, if the `TopicPolicies` isn't initialized completely, the topic 
gets backlog quota will print the error log stack, this is not necessary, 
because after the TopicPolicies initialized, the topic level backlog quota will 
come into effect.
    
    ```
    15:24:01.962 [bookkeeper-ml-workers-OrderedExecutor-2-0] WARN  
org.apache.pulsar.broker.service.BacklogQuotaManager - Failed to read topic 
policies data, will apply the namespace backlog quota: 
topicName=persistent://public/ns3/t1
    
org.apache.pulsar.broker.service.BrokerServiceException$TopicPoliciesCacheNotInitException:
 Topic policies cache have not init.
        at 
org.apache.pulsar.broker.service.SystemTopicBasedTopicPoliciesService.getTopicPolicies(SystemTopicBasedTopicPoliciesService.java:148)
 ~[org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
org.apache.pulsar.broker.service.BacklogQuotaManager.getBacklogQuota(BacklogQuotaManager.java:85)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
org.apache.pulsar.broker.service.persistent.PersistentTopic.getBacklogQuota(PersistentTopic.java:2172)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
org.apache.pulsar.broker.service.persistent.PersistentTopic.isBacklogQuotaExceeded(PersistentTopic.java:2181)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
org.apache.pulsar.broker.service.ServerCnx.lambda$handleProducer$20(ServerCnx.java:1100)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
 [?:?]
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) 
[?:?]
        at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) 
[?:?]
        at 
org.apache.pulsar.broker.service.BrokerService$3.lambda$openLedgerComplete$2(BrokerService.java:1125)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
java.util.concurrent.CompletableFuture.uniRunNow(CompletableFuture.java:815) 
[?:?]
        at 
java.util.concurrent.CompletableFuture.uniRunStage(CompletableFuture.java:799) 
[?:?]
        at 
java.util.concurrent.CompletableFuture.thenRun(CompletableFuture.java:2121) 
[?:?]
        at 
org.apache.pulsar.broker.service.BrokerService$3.openLedgerComplete(BrokerService.java:1111)
 [org.apache.pulsar-pulsar-broker-2.7.3.jar:2.7.3]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl.lambda$asyncOpen$8(ManagedLedgerFactoryImpl.java:425)
 [org.apache.pulsar-managed-ledger-2.7.3.jar:2.7.3]
        at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
 [?:?]
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) 
[?:?]
        at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) 
[?:?]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerFactoryImpl$2.initializeComplete(ManagedLedgerFactoryImpl.java:397)
 [org.apache.pulsar-managed-ledger-2.7.3.jar:2.7.3]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl$3.operationComplete(ManagedLedgerImpl.java:476)
 [org.apache.pulsar-managed-ledger-2.7.3.jar:2.7.3]
        at 
org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl$3.operationComplete(ManagedLedgerImpl.java:466)
 [org.apache.pulsar-managed-ledger-2.7.3.jar:2.7.3]
        at 
org.apache.bookkeeper.mledger.impl.MetaStoreImpl.lambda$getCursors$8(MetaStoreImpl.java:122)
 [org.apache.pulsar-managed-ledger-2.7.3.jar:2.7.3]
        at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
 [?:?]
        at 
java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
 [?:?]
        at 
org.apache.bookkeeper.common.util.OrderedExecutor$TimedRunnable.run(OrderedExecutor.java:203)
 [org.apache.bookkeeper-bookkeeper-common-4.12.0.jar:4.12.0]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [io.netty-netty-common-4.1.60.Final.jar:4.1.60.Final]
        at java.lang.Thread.run(Thread.java:834) [?:?]
    ```
    
    ### Modifications
    
    Remove the error log stack.
    
    (cherry picked from commit d370d0011cdd7256633d4bf10d73f84bdee1e28b)
---
 .../java/org/apache/pulsar/broker/service/BacklogQuotaManager.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
index bbb3ddf..c9cd15e 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BacklogQuotaManager.java
@@ -90,9 +90,12 @@ public class BacklogQuotaManager {
                     .map(TopicPolicies::getBackLogQuotaMap)
                     .map(map -> map.get(backlogQuotaType.name()))
                     .orElseGet(() -> getBacklogQuota(topicName.getNamespace(), 
policyPath, backlogQuotaType));
+        } catch (BrokerServiceException.TopicPoliciesCacheNotInitException e) {
+            log.debug("Topic policies cache have not init, will apply the 
namespace backlog quota: topicName={}",
+                    topicName);
         } catch (Exception e) {
-            log.warn("Failed to read topic policies data, will apply the 
namespace backlog quota: topicName={}",
-                    topicName, e);
+            log.error("Failed to read topic policies data, "
+                            + "will apply the namespace backlog quota: 
topicName={}", topicName, e);
         }
         return getBacklogQuota(topicName.getNamespace(), policyPath, 
backlogQuotaType);
     }

Reply via email to