You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/06/28 15:13:18 UTC
[pulsar] 13/29: [Flakey-test] fix flaky-test RackAwareTest.testRackUpdate (#16071)
This is an automated email from the ASF dual-hosted git repository.
penghui pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 028a42ca3891686a5d2cb30e278c6d56abf092c4
Author: Aloys <lo...@gmail.com>
AuthorDate: Thu Jun 16 16:01:28 2022 +0800
[Flakey-test] fix flaky-test RackAwareTest.testRackUpdate (#16071)
(cherry picked from commit 8914b84115bacaf38fe892d66533c1b70431acbf)
---
.../org/apache/pulsar/broker/service/RackAwareTest.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java
index 949cc11c6cb..618ae28e6b6 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/broker/service/RackAwareTest.java
@@ -23,6 +23,7 @@ import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
import com.google.gson.Gson;
import java.io.File;
+import java.lang.reflect.Field;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
@@ -34,10 +35,12 @@ import org.apache.bookkeeper.client.BKException;
import org.apache.bookkeeper.client.BookKeeper;
import org.apache.bookkeeper.client.BookKeeper.DigestType;
import org.apache.bookkeeper.client.LedgerHandle;
+import org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy;
import org.apache.bookkeeper.conf.ServerConfiguration;
import org.apache.bookkeeper.net.BookieId;
import org.apache.bookkeeper.proto.BookieServer;
import org.apache.bookkeeper.stats.NullStatsLogger;
+import org.apache.bookkeeper.net.NetworkTopologyImpl;
import org.apache.pulsar.broker.ServiceConfiguration;
import org.apache.pulsar.common.policies.data.BookieInfo;
import org.apache.pulsar.bookie.rackawareness.BookieRackAffinityMapping;
@@ -241,6 +244,13 @@ public class RackAwareTest extends BkEnsemblesTestBase {
});
BookKeeper bkc = this.pulsar.getBookKeeperClient();
+ Field field = bkc.getClass().getDeclaredField("placementPolicy");
+ field.setAccessible(true);
+ RackawareEnsemblePlacementPolicy ensemblePlacementPolicy = (RackawareEnsemblePlacementPolicy) field.get(bkc);
+ Field topoField =
+ ensemblePlacementPolicy.getClass().getSuperclass().getSuperclass().getDeclaredField("topology");
+ topoField.setAccessible(true);
+ NetworkTopologyImpl networkTopology = (NetworkTopologyImpl) topoField.get(ensemblePlacementPolicy);
// 3. test create ledger
try {
@@ -279,6 +289,10 @@ public class RackAwareTest extends BkEnsemblesTestBase {
assertTrue(racks.containsAll(Lists.newArrayList("rack-0", "rack-1")));
});
+ Awaitility.await().untilAsserted(() -> {
+ assertEquals(networkTopology.getNumOfRacks(), 2);
+ });
+
// 5. create ledger required for 2 racks
for (int i = 0; i < 2; i++) {
LedgerHandle lh = bkc.createLedger(2, 2, DigestType.DUMMY, new byte[0]);