aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2021-10-14 01:22:13 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2021-10-14 01:22:13 +0200
commit36432b173d20847b8a74f148557796b7494a4f94 (patch)
tree15f8c2123cbcd3cc470ae152ab9e826059752202 /clustercontroller-core
parent8d0461df6be53a74eba87ea5e7950cce97e75f75 (diff)
Reduce running time of MasterElectionTest from 28 to 12s
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/DatabaseHandler.java6
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java6
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);