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

dao-jun 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 4addfdab1a2 [fix] Fix flaky 
BrokerDispatchRateLimiterTest.testBrokerDispatchThrottledMetrics (#25567)
4addfdab1a2 is described below

commit 4addfdab1a2c57ec23148b27abef0b5d437b076b
Author: Pavel Zeger <[email protected]>
AuthorDate: Wed Apr 22 17:48:29 2026 +0300

    [fix] Fix flaky 
BrokerDispatchRateLimiterTest.testBrokerDispatchThrottledMetrics (#25567)
---
 .../service/BrokerDispatchRateLimiterTest.java       | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
index 0db1a0f13ac..2a55e946ca0 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/BrokerDispatchRateLimiterTest.java
@@ -20,11 +20,14 @@ package org.apache.pulsar.broker.service;
 
 import static 
org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient.parseMetrics;
 import static org.testng.Assert.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
 import com.google.common.collect.Multimap;
 import java.io.ByteArrayOutputStream;
+import java.time.Duration;
 import java.util.Collection;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
 import lombok.Cleanup;
 import org.apache.pulsar.PrometheusMetricsTestUtil;
 import org.apache.pulsar.broker.stats.prometheus.PrometheusMetricsClient;
@@ -35,6 +38,7 @@ import org.apache.pulsar.client.api.Producer;
 import org.apache.pulsar.client.api.Schema;
 import org.apache.pulsar.client.api.SubscriptionType;
 import org.awaitility.Awaitility;
+import org.mockito.exceptions.misusing.DisabledMockException;
 import org.testng.Assert;
 import org.testng.annotations.AfterClass;
 import org.testng.annotations.BeforeClass;
@@ -109,10 +113,18 @@ public class BrokerDispatchRateLimiterTest extends 
BrokerTestBase {
         }
 
         // Assert broker metrics
-        ByteArrayOutputStream output = new ByteArrayOutputStream();
-        PrometheusMetricsTestUtil.generate(pulsar, true, false, false, output);
-        String metricsStr = output.toString();
-        Multimap<String, PrometheusMetricsClient.Metric> metrics = 
parseMetrics(metricsStr);
+        AtomicReference<String> metricsString = new AtomicReference<>();
+        Awaitility.await()
+                .pollInterval(Duration.ofMillis(200))
+                .atMost(Duration.ofSeconds(5))
+                .ignoreExceptionsMatching(exception -> exception.getCause() 
instanceof DisabledMockException)
+                .untilAsserted(() -> {
+                    ByteArrayOutputStream output = new ByteArrayOutputStream();
+                    PrometheusMetricsTestUtil.generate(pulsar, true, false, 
false, output);
+                    metricsString.set(output.toString());
+                    assertFalse(metricsString.get().isEmpty());
+                });
+        Multimap<String, PrometheusMetricsClient.Metric> metrics = 
parseMetrics(metricsString.get());
 
         // Assert subscription metrics reason by broker limit
         Collection<PrometheusMetricsClient.Metric> 
subscriptionDispatchThrottledMsgCountMetrics =

Reply via email to