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 bc3e7f60574 [fix][broker] Allow broker to handle non-recoverable 
schema error only if SchemaLedgerForceRecovery flag is enabled (#23428)
bc3e7f60574 is described below

commit bc3e7f60574dd25b0d3511c56d09d233d0c15f42
Author: Rajan Dhabalia <[email protected]>
AuthorDate: Thu Oct 10 12:30:16 2024 -0700

    [fix][broker] Allow broker to handle non-recoverable schema error only if 
SchemaLedgerForceRecovery flag is enabled (#23428)
---
 .../src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java  | 3 ++-
 .../org/apache/pulsar/broker/service/schema/ClientGetSchemaTest.java   | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
index 76dd277159c..11f00fb28e3 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
@@ -671,7 +671,8 @@ public abstract class AbstractTopic implements Topic, 
TopicPolicyListener {
         return 
brokerService.pulsar().getSchemaRegistryService().getSchema(getSchemaId()).thenApply(Objects::nonNull)
                 .exceptionally(e -> {
                     Throwable ex = e.getCause();
-                    if (ex instanceof SchemaException || !((SchemaException) 
ex).isRecoverable()) {
+                    if 
(brokerService.pulsar().getConfig().isSchemaLedgerForceRecovery()
+                            && (ex instanceof SchemaException && 
!((SchemaException) ex).isRecoverable())) {
                         return false;
                     }
                     throw ex instanceof CompletionException ? 
(CompletionException) ex : new CompletionException(ex);
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/ClientGetSchemaTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/ClientGetSchemaTest.java
index ec81f39fef9..f9c1042b0e9 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/ClientGetSchemaTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/schema/ClientGetSchemaTest.java
@@ -186,7 +186,7 @@ public class ClientGetSchemaTest extends 
ProducerConsumerBase {
         final String topicOne = "test-deleted-schema-ledger";
         final String fqtnOne = TopicName.get(TopicDomain.persistent.value(), 
tenant, namespace, topicOne).toString();
 
-        //pulsar.getConfig().setManagedLedgerForceRecovery(true);
+        pulsar.getConfig().setSchemaLedgerForceRecovery(true);
         admin.namespaces().createNamespace(tenant + "/" + namespace, 
Sets.newHashSet("test"));
 
         // (1) create topic with schema

Reply via email to