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

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


The following commit(s) were added to refs/heads/branch-2.9 by this push:
     new 73c6755754d 
[fix][flaky-test]ManagedCursorMetricsTest.testCursorReadWriteMetrics (#17045)
73c6755754d is described below

commit 73c6755754d4bbc9eb8572f650fbbe069fb31eb0
Author: fengyubiao <[email protected]>
AuthorDate: Fri Aug 12 20:25:38 2022 +0800

    [fix][flaky-test]ManagedCursorMetricsTest.testCursorReadWriteMetrics 
(#17045)
    
    (cherry picked from commit e0ff3d7e0083d4ecd9b4af55e11a6bf9e461dfc9)
---
 .../broker/stats/ManagedCursorMetricsTest.java     | 24 +++++++++++++++++++---
 1 file changed, 21 insertions(+), 3 deletions(-)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/ManagedCursorMetricsTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/ManagedCursorMetricsTest.java
index 812a6b2e047..6b5f002ab41 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/ManagedCursorMetricsTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/stats/ManagedCursorMetricsTest.java
@@ -21,6 +21,7 @@ package org.apache.pulsar.broker.stats;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.UUID;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import lombok.Cleanup;
 import org.apache.bookkeeper.client.LedgerHandle;
@@ -200,9 +201,19 @@ public class ManagedCursorMetricsTest extends 
MockedPulsarServiceBaseTest {
         admin.topics().delete(topicName, true);
     }
 
+    private ManagedCursorMXBean getManagedCursorMXBean(String topicName, 
String subscriptionName)
+            throws ExecutionException, InterruptedException {
+        final PersistentSubscription persistentSubscription =
+                (PersistentSubscription) pulsar.getBrokerService()
+                        .getTopic(topicName, 
false).get().get().getSubscription(subscriptionName);
+        final ManagedCursorImpl managedCursor = (ManagedCursorImpl) 
persistentSubscription.getCursor();
+        return managedCursor.getStats();
+    }
+
     @Test
     public void testCursorReadWriteMetrics() throws Exception {
-        final String subName = "read-write";
+        final String subName1 = "read-write-sub-1";
+        final String subName2 = "read-write-sub-2";
         final String topicName = 
"persistent://my-namespace/use/my-ns/read-write";
         final int messageSize = 10;
 
@@ -219,7 +230,7 @@ public class ManagedCursorMetricsTest extends 
MockedPulsarServiceBaseTest {
                 .topic(topicName)
                 .subscriptionType(SubscriptionType.Shared)
                 .ackTimeout(1, TimeUnit.SECONDS)
-                .subscriptionName(subName)
+                .subscriptionName(subName1)
                 .subscribe();
 
         @Cleanup
@@ -227,7 +238,7 @@ public class ManagedCursorMetricsTest extends 
MockedPulsarServiceBaseTest {
                 .topic(topicName)
                 .subscriptionType(SubscriptionType.Shared)
                 .ackTimeout(1, TimeUnit.SECONDS)
-                .subscriptionName(subName + "-2")
+                .subscriptionName(subName2)
                 .subscribe();
 
         @Cleanup
@@ -244,6 +255,13 @@ public class ManagedCursorMetricsTest extends 
MockedPulsarServiceBaseTest {
                 consumer2.acknowledge(consumer.receive().getMessageId());
             }
         }
+
+        // Wait for persistent cursor meta.
+        ManagedCursorMXBean cursorMXBean1 = getManagedCursorMXBean(topicName, 
subName1);
+        ManagedCursorMXBean cursorMXBean2 = getManagedCursorMXBean(topicName, 
subName2);
+        Awaitility.await().until(() -> 
cursorMXBean1.getWriteCursorLedgerLogicalSize() > 0);
+        Awaitility.await().until(() -> 
cursorMXBean2.getWriteCursorLedgerLogicalSize() > 0);
+
         metricsList = metrics.generate();
         Assert.assertEquals(metricsList.size(), 2);
         
Assert.assertEquals(metricsList.get(0).getMetrics().get("brk_ml_cursor_writeLedgerSize"),
 26L);

Reply via email to