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 2022/06/28 15:13:33 UTC
[pulsar] 28/29: [fix][broker] Fix NPE when drop backlog for time limit. (#16235)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit a51196ecf4d4d626487f43b9caf4c04e363a0d56
Author: Jiwei Guo <te...@apache.org>
AuthorDate: Tue Jun 28 14:39:00 2022 +0800
[fix][broker] Fix NPE when drop backlog for time limit. (#16235)
(cherry picked from commit d24d82780fd27a98c6cdbee28d756ee7d419495f)
---
.../java/org/apache/pulsar/broker/service/BacklogQuotaManager.java | 4 ++++
1 file changed, 4 insertions(+)
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 c41901222f3..805d00adca6 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
@@ -214,6 +214,10 @@ public class BacklogQuotaManager {
ManagedCursor slowestConsumer = mLedger.getSlowestConsumer();
Position oldestPosition = slowestConsumer.getMarkDeletedPosition();
ManagedLedgerInfo.LedgerInfo ledgerInfo = mLedger.getLedgerInfo(oldestPosition.getLedgerId()).get();
+ if (ledgerInfo == null) {
+ slowestConsumer.resetCursor(mLedger.getNextValidPosition((PositionImpl) oldestPosition));
+ continue;
+ }
// Timestamp only > 0 if ledger has been closed
if (ledgerInfo.getTimestamp() > 0
&& currentMillis - ledgerInfo.getTimestamp() > quota.getLimitTime()) {