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

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

commit b72fe75d835445b5206e393b52b1f90e01d2f299
Author: Matteo Merli <[email protected]>
AuthorDate: Tue Apr 28 10:47:45 2026 -0700

    [fix][test] Fix flaky 
ExtensibleLoadManagerImplTest.testLoadBalancerServiceUnitTableViewSyncer 
(#25596)
    
    (cherry picked from commit d69c78753c5f3747e8d961ee9ba3a419f9c9d8af)
---
 .../extensions/ExtensibleLoadManagerImplTest.java           | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImplTest.java
 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImplTest.java
index 94c60356b4a..48b41620a1d 100644
--- 
a/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImplTest.java
+++ 
b/pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/extensions/ExtensibleLoadManagerImplTest.java
@@ -1337,10 +1337,15 @@ public class ExtensibleLoadManagerImplTest extends 
ExtensibleLoadManagerImplBase
                 
assertTrue(pulsar2.getConfiguration().isLoadBalancerServiceUnitTableViewSyncerEnabled()));
         makeSecondaryAsLeader();
         makePrimaryAsLeader();
-        Awaitility.await().atMost(30, TimeUnit.SECONDS)
+        // playLeader()/playFollower() run on a single-threaded 
loadManagerExecutor, so
+        // playLeader() on the new leader can be queued behind a still-running 
playFollower()
+        // from the prior demotion. Under CI load this serial chain plus the 
syncer.start()
+        // work (which opens both table views and runs 
syncExistingItems/syncTailItems)
+        // can take longer than 30s, so use a more generous timeout here.
+        Awaitility.await().atMost(60, TimeUnit.SECONDS)
                 .untilAsserted(() -> 
assertTrue(primaryLoadManager.getServiceUnitStateTableViewSyncer()
                         .isActive()));
-        Awaitility.await().atMost(30, TimeUnit.SECONDS)
+        Awaitility.await().atMost(60, TimeUnit.SECONDS)
                 .untilAsserted(() -> 
assertFalse(secondaryLoadManager.getServiceUnitStateTableViewSyncer()
                         .isActive()));
         ServiceConfiguration defaultConf = getDefaultConf();
@@ -1549,10 +1554,10 @@ public class ExtensibleLoadManagerImplTest extends 
ExtensibleLoadManagerImplBase
         Awaitility.await().untilAsserted(() ->
                 
assertFalse(pulsar2.getConfiguration().isLoadBalancerServiceUnitTableViewSyncerEnabled()));
         makeSecondaryAsLeader();
-        Awaitility.await().atMost(30, TimeUnit.SECONDS)
+        Awaitility.await().atMost(60, TimeUnit.SECONDS)
                 .untilAsserted(() -> 
assertFalse(primaryLoadManager.getServiceUnitStateTableViewSyncer()
                         .isActive()));
-        Awaitility.await().atMost(30, TimeUnit.SECONDS)
+        Awaitility.await().atMost(60, TimeUnit.SECONDS)
                 .untilAsserted(() -> 
assertFalse(secondaryLoadManager.getServiceUnitStateTableViewSyncer()
                         .isActive()));
     }

Reply via email to