You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2026/05/05 21:53:14 UTC

(pulsar) branch master updated: [fix][test] Fix flaky AdminApiOffloadTest.testOffload status race (#25674)

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

merlimat 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 f84bc3867f8 [fix][test] Fix flaky AdminApiOffloadTest.testOffload status race (#25674)
f84bc3867f8 is described below

commit f84bc3867f8da761c2334c517b79196c04bb063f
Author: Matteo Merli <mm...@apache.org>
AuthorDate: Tue May 5 14:53:08 2026 -0700

    [fix][test] Fix flaky AdminApiOffloadTest.testOffload status race (#25674)
---
 .../org/apache/pulsar/broker/admin/AdminApiOffloadTest.java    | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiOffloadTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiOffloadTest.java
index a98389d54c3..4b4eb2ff4fe 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiOffloadTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/admin/AdminApiOffloadTest.java
@@ -166,9 +166,13 @@ public class AdminApiOffloadTest extends MockedPulsarServiceBaseTest {
         // fail first time
         promise.completeExceptionally(new Exception("Some random failure"));
 
-        assertEquals(admin.topics().offloadStatus(topicName).getStatus(),
-                            LongRunningProcessStatus.Status.ERROR);
-        Assert.assertTrue(admin.topics().offloadStatus(topicName).getLastError().contains("Some random failure"));
+        // The failure handler runs asynchronously after the promise completes, so the
+        // offloadStatus may briefly still report RUNNING before transitioning to ERROR.
+        Awaitility.await().untilAsserted(() -> {
+            var status = admin.topics().offloadStatus(topicName);
+            assertEquals(status.getStatus(), LongRunningProcessStatus.Status.ERROR);
+            Assert.assertTrue(status.getLastError().contains("Some random failure"));
+        });
 
         // Try again
         doReturn(CompletableFuture.completedFuture(null))