diff options
author | Håkon Hallingstad <hakon@yahooinc.com> | 2021-10-14 01:22:13 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@yahooinc.com> | 2021-10-14 01:22:13 +0200 |
commit | 36432b173d20847b8a74f148557796b7494a4f94 (patch) | |
tree | 15f8c2123cbcd3cc470ae152ab9e826059752202 /clustercontroller-core | |
parent | 8d0461df6be53a74eba87ea5e7950cce97e75f75 (diff) |
Reduce running time of MasterElectionTest from 28 to 12s
Diffstat (limited to 'clustercontroller-core')
2 files changed, 11 insertions, 1 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/DatabaseHandler.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/DatabaseHandler.java index f8b5f854088..c2574f4c6cf 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/DatabaseHandler.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/DatabaseHandler.java @@ -89,7 +89,7 @@ public class DatabaseHandler { private final Data pendingStore = new Data(); private int lastKnownStateBundleVersionWrittenBySelf = -1; private long lastZooKeeperConnectionAttempt = 0; - private static final int minimumWaitBetweenFailedConnectionAttempts = 10000; + private int minimumWaitBetweenFailedConnectionAttempts = 10000; private boolean lostZooKeeperConnectionEvent = false; private boolean connectionEstablishmentIsAllowed = false; private Map<Integer, Integer> masterDataEvent = null; @@ -121,6 +121,10 @@ public class DatabaseHandler { return lastKnownStateBundleVersionWrittenBySelf; } + public void setMinimumWaitBetweenFailedConnectionAttempts(int minimumWaitBetweenFailedConnectionAttempts) { + this.minimumWaitBetweenFailedConnectionAttempts = minimumWaitBetweenFailedConnectionAttempts; + } + public void reset(Context context) { final boolean wasRunning; synchronized (databaseMonitor) { diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java index 48a342d7737..d720e38caaa 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java @@ -173,6 +173,12 @@ public abstract class FleetControllerTest implements Waiter { lookUp.setSlobrokConnectionSpecs(new String[0]); RpcServer rpcServer = new RpcServer(timer, timer, options.clusterName, options.fleetControllerIndex, options.slobrokBackOffPolicy); DatabaseHandler database = new DatabaseHandler(new ZooKeeperDatabaseFactory(), timer, options.zooKeeperServerAddress, options.fleetControllerIndex, timer); + + // Setting this <1000 ms causes ECONNREFUSED on socket trying to connect to ZK server, in ZooKeeper, + // after creating a new ZooKeeper (session). This causes ~10s extra time to connect after connection loss. + // Reasons unknown. Larger values like the default 10_000 causes that much additional running time for some tests. + database.setMinimumWaitBetweenFailedConnectionAttempts(2_000); + StateChangeHandler stateGenerator = new StateChangeHandler(timer, log); SystemStateBroadcaster stateBroadcaster = new SystemStateBroadcaster(timer, timer); MasterElectionHandler masterElectionHandler = new MasterElectionHandler(options.fleetControllerIndex, options.fleetControllerCount, timer, timer); |