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

rdhabalia pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/master by this push:
     new 326e9fa731a [fix] [broker] Fix Broker was failing to load 
stats-internal with broken schema ledger (#22845)
326e9fa731a is described below

commit 326e9fa731ae17304621ab915e36d52a9b28a7a0
Author: Rajan Dhabalia <[email protected]>
AuthorDate: Wed Jun 5 11:19:12 2024 -0700

    [fix] [broker] Fix Broker was failing to load stats-internal with broken 
schema ledger (#22845)
---
 .../apache/pulsar/broker/service/persistent/PersistentTopic.java   | 7 +++++++
 1 file changed, 7 insertions(+)

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 18e69250c16..2165247b161 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
@@ -58,6 +58,8 @@ import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import lombok.Getter;
 import lombok.Value;
+import org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsException;
+import 
org.apache.bookkeeper.client.BKException.BKNoSuchLedgerExistsOnMetadataServerException;
 import org.apache.bookkeeper.client.api.LedgerMetadata;
 import org.apache.bookkeeper.mledger.AsyncCallbacks;
 import org.apache.bookkeeper.mledger.AsyncCallbacks.AddEntryCallback;
@@ -2829,6 +2831,11 @@ public class PersistentTopic extends AbstractTopic 
implements Topic, AddEntryCal
                                 }).exceptionally(e -> {
                                     log.error("[{}] Failed to get ledger 
metadata for the schema ledger {}",
                                             topic, ledgerId, e);
+                                    if ((e.getCause() instanceof 
BKNoSuchLedgerExistsOnMetadataServerException)
+                                            || (e.getCause() instanceof 
BKNoSuchLedgerExistsException)) {
+                                        completableFuture.complete(null);
+                                        return null;
+                                    }
                                     completableFuture.completeExceptionally(e);
                                     return null;
                                 });

Reply via email to