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 2021/02/04 02:44:45 UTC

[pulsar] 07/09: Skip clear delayed messages while dispatch does not init (#9378)

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

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

commit dfef57de476e2891457b50c60ed6fc85e226d554
Author: lipenghui <pe...@apache.org>
AuthorDate: Wed Feb 3 11:48:21 2021 +0800

    Skip clear delayed messages while dispatch does not init (#9378)
    
    Fixes #9032
    
    Skip clear delayed messages while dispatch does not init
    
    New test added
    
    (cherry picked from commit 2b8615c596cfc2c46da64681ab76d43cfa8b6b2a)
---
 .../pulsar/broker/service/persistent/PersistentSubscription.java | 4 +++-
 .../test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java  | 9 ++++++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
index 2c87f02..da910a8 100644
--- a/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
+++ b/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/persistent/PersistentSubscription.java
@@ -507,7 +507,9 @@ public class PersistentSubscription implements Subscription {
                     log.debug("[{}][{}] Backlog size after clearing: {}", topicName, subName,
                             cursor.getNumberOfEntriesInBacklog(false));
                 }
-                dispatcher.clearDelayedMessages();
+                if (dispatcher != null) {
+                    dispatcher.clearDelayedMessages();
+                }
                 future.complete(null);
             }
 
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
index 70d2542..5c177da 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiTest2.java
@@ -1658,5 +1658,12 @@ public class AdminApiTest2 extends MockedPulsarServiceBaseTest {
         }
     }
 
-
+    @Test
+    public void testClearBacklogForTheSubscriptionThatNoConsumers() throws Exception {
+        final String topic = "persistent://prop-xyz/ns1/clear_backlog_no_consumers" + UUID.randomUUID().toString();
+        final String sub = "my-sub";
+        admin.topics().createNonPartitionedTopic(topic);
+        admin.topics().createSubscription(topic, sub, MessageId.earliest);
+        admin.topics().skipAllMessages(topic, sub);
+    }
 }