Skip to content

Commit d96da97

Browse files
authored
[fix][test] Fix flaky ModularLoadManagerImplTest and IsolatedBookieEnsemblePlacementPolicyTest (#25496)
1 parent 0417705 commit d96da97

2 files changed

Lines changed: 10 additions & 3 deletions

File tree

pulsar-broker-common/src/test/java/org/apache/pulsar/bookie/rackawareness/IsolatedBookieEnsemblePlacementPolicyTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -522,11 +522,13 @@ public void testSecondaryIsolationGroupsBookies() throws Exception {
522522
defaultBookieGroup.put(BOOKIE5, BookieInfo.builder().rack("rack1").build());
523523

524524
Map<String, BookieInfo> primaryIsolatedBookieGroup = new HashMap<>();
525-
primaryIsolatedBookieGroup.put(BOOKIE1, BookieInfo.builder().rack("rack1").build());
525+
// Use the same rack as in the default group to avoid non-deterministic rack
526+
// resolution when the same bookie appears in multiple groups with different racks.
527+
primaryIsolatedBookieGroup.put(BOOKIE1, BookieInfo.builder().rack("rack0").build());
526528

527529
Map<String, BookieInfo> secondaryIsolatedBookieGroup = new HashMap<>();
528-
secondaryIsolatedBookieGroup.put(BOOKIE2, BookieInfo.builder().rack("rack0").build());
529-
secondaryIsolatedBookieGroup.put(BOOKIE4, BookieInfo.builder().rack("rack0").build());
530+
secondaryIsolatedBookieGroup.put(BOOKIE2, BookieInfo.builder().rack("rack1").build());
531+
secondaryIsolatedBookieGroup.put(BOOKIE4, BookieInfo.builder().rack("rack1").build());
530532

531533
bookieMapping.put("default", defaultBookieGroup);
532534
bookieMapping.put(isolatedGroup, primaryIsolatedBookieGroup);

pulsar-broker/src/test/java/org/apache/pulsar/broker/loadbalance/impl/ModularLoadManagerImplTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,6 +1063,11 @@ public void testRemoveNonExistBundleData()
10631063
executorService.submit(latch::countDown);
10641064
latch.await();
10651065

1066+
// Ensure lm1 has loaded broker data from both brokers before writing bundle data.
1067+
// Without this, lm1 may only see bundles from one broker, causing fewer than
1068+
// bundleNumbers bundles to be written to the metadata store.
1069+
lm1.updateAll();
1070+
10661071
loadManagerWrapper.writeResourceQuotasToZooKeeper();
10671072

10681073
MetadataCache<BundleData> bundlesCache = pulsar1.getLocalMetadataStore().getMetadataCache(BundleData.class);

0 commit comments

Comments
 (0)