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

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


The following commit(s) were added to refs/heads/branch-2.10 by this push:
     new 13938c1b051 [fix][broker] Fast fix infinite HTTP call getSubscriptions 
caused by wrong topicName (#22357)
13938c1b051 is described below

commit 13938c1b051786077744cbf362cd68a0f0875f16
Author: fengyubiao <yubiao.f...@streamnative.io>
AuthorDate: Tue Mar 26 19:50:15 2024 +0800

    [fix][broker] Fast fix infinite HTTP call getSubscriptions caused by wrong 
topicName (#22357)
    
    Co-authored-by: Jiwe Guo <techno...@apache.org>
---
 .../apache/pulsar/broker/admin/impl/PersistentTopicsBase.java    | 2 +-
 .../api/TopicNameForInfiniteHttpCallGetSubscriptionsTest.java    | 9 ++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
index dbcfd734a37..6e537900f39 100644
--- 
a/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
+++ 
b/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/PersistentTopicsBase.java
@@ -2222,7 +2222,7 @@ public class PersistentTopicsBase extends AdminResource {
                             getPartitionedTopicMetadataAsync(topicName, 
authoritative, allowAutoTopicCreation))
                     .thenAccept(partitionMetadata -> {
                     final int numPartitions = partitionMetadata.partitions;
-                    if (numPartitions > 0) {
+                    if (partitionMetadata.partitions > 0 && 
!isUnexpectedTopicName(partitionMetadata)) {
                         final CompletableFuture<Void> future = new 
CompletableFuture<>();
                         final AtomicInteger count = new 
AtomicInteger(numPartitions);
                         final AtomicInteger failureCount = new 
AtomicInteger(0);
diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TopicNameForInfiniteHttpCallGetSubscriptionsTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TopicNameForInfiniteHttpCallGetSubscriptionsTest.java
index 6d3806f312e..25eee62609f 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TopicNameForInfiniteHttpCallGetSubscriptionsTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TopicNameForInfiniteHttpCallGetSubscriptionsTest.java
@@ -52,7 +52,7 @@ public class TopicNameForInfiniteHttpCallGetSubscriptionsTest 
extends ProducerCo
     }
 
     @Test
-    public void testInfiniteHttpCallGetSubscriptions() throws Exception {
+    public void testInfiniteHttpCallGetOrCreateSubscriptions() throws 
Exception {
         final String randomStr = UUID.randomUUID().toString().replaceAll("-", 
"");
         final String partitionedTopicName = 
"persistent://my-property/my-ns/tp1_" + randomStr;
         final String topic_p0 = partitionedTopicName + 
TopicName.PARTITIONED_TOPIC_SUFFIX + "0";
@@ -64,6 +64,7 @@ public class TopicNameForInfiniteHttpCallGetSubscriptionsTest 
extends ProducerCo
         // Do test.
         ProducerAndConsumerEntry pcEntry = triggerDLQCreated(topic_p0, 
topicDLQ, subscriptionName);
         admin.topics().getSubscriptions(topicDLQ);
+        admin.topics().createSubscription(topicDLQ, "s1", MessageId.earliest);
 
         // cleanup.
         pcEntry.consumer.close();
@@ -72,7 +73,7 @@ public class TopicNameForInfiniteHttpCallGetSubscriptionsTest 
extends ProducerCo
     }
 
     @Test
-    public void testInfiniteHttpCallGetSubscriptions2() throws Exception {
+    public void testInfiniteHttpCallGetOrCreateSubscriptions2() throws 
Exception {
         final String randomStr = UUID.randomUUID().toString().replaceAll("-", 
"");
         final String topicName = "persistent://my-property/my-ns/tp1_" + 
randomStr + "-partition-0-abc";
         Producer<String> producer = pulsarClient.newProducer(Schema.STRING)
@@ -81,13 +82,14 @@ public class 
TopicNameForInfiniteHttpCallGetSubscriptionsTest extends ProducerCo
 
         // Do test.
         admin.topics().getSubscriptions(topicName);
+        admin.topics().createSubscription(topicName, "s1", MessageId.earliest);
 
         // cleanup.
         producer.close();
     }
 
     @Test
-    public void testInfiniteHttpCallGetSubscriptions3() throws Exception {
+    public void testInfiniteHttpCallGetOrCreateSubscriptions3() throws 
Exception {
         final String randomStr = UUID.randomUUID().toString().replaceAll("-", 
"");
         final String topicName = "persistent://my-property/my-ns/tp1_" + 
randomStr + "-partition-0";
         Producer<String> producer = pulsarClient.newProducer(Schema.STRING)
@@ -96,6 +98,7 @@ public class TopicNameForInfiniteHttpCallGetSubscriptionsTest 
extends ProducerCo
 
         // Do test.
         admin.topics().getSubscriptions(topicName);
+        admin.topics().createSubscription(topicName, "s1", MessageId.earliest);
 
         // cleanup.
         producer.close();

Reply via email to