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())); }
