aboutsummaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@yahooinc.com>2021-10-14 16:08:51 +0200
committerHåkon Hallingstad <hakon@yahooinc.com>2021-10-14 16:08:51 +0200
commit4ff6410056560e0993f93a5a76a02b822e50e550 (patch)
tree7dface7bc73348c08c2a8445395a63dc5b4c0816 /clustercontroller-core
parente796dcf2409e6c9bfef432eded6cd90d69ce0c27 (diff)
Some optimizations of RpcServerTest
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java3
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java13
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java6
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java31
4 files changed, 31 insertions, 22 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
index ba8657fa3a6..20b62576ff5 100644
--- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
+++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/FleetController.java
@@ -1120,11 +1120,12 @@ public class FleetController implements NodeStateOrHostInfoChangeHandler, NodeAd
inMasterMoratorium = false;
}
+ @Override
public void run() {
controllerThreadId = Thread.currentThread().getId();
try {
processingCycle = true;
- while( isRunning() ) {
+ while (isRunning()) {
tick();
}
} catch (InterruptedException e) {
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
index 05706712ccd..c167c82aa90 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/DummyVdsNode.java
@@ -9,14 +9,16 @@ import com.yahoo.jrt.Method;
import com.yahoo.jrt.Request;
import com.yahoo.jrt.Spec;
import com.yahoo.jrt.StringValue;
-import com.yahoo.jrt.StringValue;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Transport;
import com.yahoo.jrt.slobrok.api.BackOffPolicy;
import com.yahoo.jrt.slobrok.api.Register;
import com.yahoo.jrt.slobrok.api.SlobrokList;
-import java.util.logging.Level;
-import com.yahoo.vdslib.state.*;
+import com.yahoo.vdslib.state.ClusterState;
+import com.yahoo.vdslib.state.Node;
+import com.yahoo.vdslib.state.NodeState;
+import com.yahoo.vdslib.state.NodeType;
+import com.yahoo.vdslib.state.State;
import com.yahoo.vespa.clustercontroller.core.rpc.RPCCommunicator;
import com.yahoo.vespa.clustercontroller.core.rpc.RPCUtil;
@@ -26,6 +28,7 @@ import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.TreeMap;
+import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -104,7 +107,7 @@ public class DummyVdsNode {
}
}
try{
- timer.wait(100);
+ timer.wait(10);
} catch (InterruptedException e) {
break;
}
@@ -184,7 +187,7 @@ public class DummyVdsNode {
newState.setDescription("controlled shutdown");
setNodeState(newState);
// Sleep a bit in hopes of answer being written before shutting down socket
- try{ Thread.sleep(100); } catch (InterruptedException e) { /* ignore */ }
+ try{ Thread.sleep(10); } catch (InterruptedException e) { /* ignore */ }
}
if (supervisor == null) return;
register.shutdown();
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 d720e38caaa..55677782a3d 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
@@ -126,7 +126,11 @@ public abstract class FleetControllerTest implements Waiter {
}
static protected FleetControllerOptions defaultOptions(String clusterName) {
- return defaultOptions(clusterName, IntStream.range(0, DEFAULT_NODE_COUNT)
+ return defaultOptions(clusterName, DEFAULT_NODE_COUNT);
+ }
+
+ static protected FleetControllerOptions defaultOptions(String clusterName, int nodeCount) {
+ return defaultOptions(clusterName, IntStream.range(0, nodeCount)
.mapToObj(i -> new ConfiguredNode(i, false))
.collect(Collectors.toSet()));
}
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
index 993c5eef96d..05ee96500d5 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/RpcServerTest.java
@@ -280,34 +280,34 @@ public class RpcServerTest extends FleetControllerTest {
public void testGetNodeStateWithConfiguredRetired() throws Exception {
startingTest("RpcServerTest::testGetNodeStateWithConfiguredRetired");
List<ConfiguredNode> configuredNodes = new ArrayList<>();
- for (int i = 0; i < 9; i++)
+ for (int i = 0; i < 4; i++)
configuredNodes.add(new ConfiguredNode(i, false));
- configuredNodes.add(new ConfiguredNode(9, true)); // Last node is configured retired
+ configuredNodes.add(new ConfiguredNode(4, true)); // Last node is configured retired
FleetControllerOptions options = defaultOptions("mycluster", configuredNodes);
options.minRatioOfStorageNodesUp = 0;
options.maxInitProgressTime = 30000;
options.stableStateTimePeriod = 60000;
setUpFleetController(true, options);
setUpVdsNodes(true, new DummyVdsNodeOptions(), false, configuredNodes);
- waitForState("version:\\d+ distributor:10 storage:10 .9.s:r");
+ waitForState("version:\\d+ distributor:5 storage:5 .4.s:r");
setWantedNodeState(State.DOWN, NodeType.DISTRIBUTOR, 2);
setWantedNodeState(State.RETIRED, NodeType.STORAGE, 2);
- setWantedNodeState(State.MAINTENANCE, NodeType.STORAGE, 7);
+ setWantedNodeState(State.MAINTENANCE, NodeType.STORAGE, 3);
waitForCompleteCycle();
timer.advanceTime(1000000);
waitForCompleteCycle(); // Make fleet controller notice that time has changed before any disconnects
nodes.get(0).disconnect();
nodes.get(3).disconnect();
nodes.get(5).disconnect();
- waitForState("version:\\d+ distributor:10 .0.s:d .2.s:d storage:10 .1.s:m .2.s:m .7.s:m .9.s:r");
+ waitForState("version:\\d+ distributor:5 .0.s:d .2.s:d storage:5 .1.s:m .2.s:m .3.s:m .4.s:r");
timer.advanceTime(1000000);
- waitForState("version:\\d+ distributor:10 .0.s:d .2.s:d storage:10 .1.s:d .2.s:d .7.s:m .9.s:r");
+ waitForState("version:\\d+ distributor:5 .0.s:d .2.s:d storage:5 .1.s:d .2.s:d .3.s:m .4.s:r");
timer.advanceTime(1000000);
waitForCompleteCycle(); // Make fleet controller notice that time has changed before any disconnects
nodes.get(3).setNodeState(new NodeState(nodes.get(3).getType(), State.INITIALIZING).setInitProgress(0.2f));
nodes.get(3).connect();
- waitForState("version:\\d+ distributor:10 .0.s:d .2.s:d storage:10 .1.s:i .1.i:0.2 .2.s:d .7.s:m .9.s:r");
+ waitForState("version:\\d+ distributor:5 .0.s:d .2.s:d storage:5 .1.s:i .1.i:0.2 .2.s:d .3.s:m .4.s:r");
}
@Test
@@ -578,13 +578,14 @@ public class RpcServerTest extends FleetControllerTest {
@Test
public void testGetNodeList() throws Exception {
startingTest("RpcServerTest::testGetNodeList");
- setUpFleetController(true, defaultOptions("mycluster"));
- setUpVdsNodes(true, new DummyVdsNodeOptions());
+ setUpFleetController(true, defaultOptions("mycluster", 5));
+ final int nodeCount = 5;
+ setUpVdsNodes(true, new DummyVdsNodeOptions(), false, nodeCount);
waitForStableSystem();
assertTrue(nodes.get(0).isDistributor());
nodes.get(0).disconnect();
- waitForState("version:\\d+ distributor:10 .0.s:d storage:10");
+ waitForState("version:\\d+ distributor:5 .0.s:d storage:5");
int rpcPort = fleetController.getRpcPort();
supervisor = new Supervisor(new Transport());
@@ -592,7 +593,7 @@ public class RpcServerTest extends FleetControllerTest {
assertTrue(connection.isValid());
// Possibly do request multiple times if we haven't lost slobrok contact first times yet.
- for (int j=0; j<=10; ++j) {
+ for (int j = 0; j <= nodeCount; ++j) {
Request req = new Request("getNodeList");
connection.invokeSync(req, timeoutS);
assertEquals(req.errorMessage(), ErrorCode.NONE, req.errorCode());
@@ -600,13 +601,13 @@ public class RpcServerTest extends FleetControllerTest {
String[] slobrok = req.returnValues().get(0).asStringArray().clone();
String[] rpc = req.returnValues().get(1).asStringArray().clone();
- assertEquals(20, slobrok.length);
- assertEquals(20, rpc.length);
+ assertEquals(2 * nodeCount, slobrok.length);
+ assertEquals(2 * nodeCount, rpc.length);
// Verify that we can connect to all addresses returned.
- for (int i=0; i<20; ++i) {
+ for (int i = 0; i < 2 * nodeCount; ++i) {
if (slobrok[i].equals("storage/cluster.mycluster/distributor/0")) {
- if (i < 10 && !"".equals(rpc[i])) {
+ if (i < nodeCount && !"".equals(rpc[i])) {
continue;
}
assertEquals(slobrok[i], "", rpc[i]);