summaryrefslogtreecommitdiffstats
path: root/clustercontroller-core
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-10-02 09:31:26 +0200
committerHarald Musum <musum@verizonmedia.com>2020-10-02 09:31:26 +0200
commit1a6f1eb56eb57b5300b676790bb8583ac4806e48 (patch)
tree40e4b0cd4852c8191f6eafb3ec050fc108e87c34 /clustercontroller-core
parentebe20db2bf63f001e5792812057e7ae8bc76c385 (diff)
Cleanup
Diffstat (limited to 'clustercontroller-core')
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/FleetControllerTest.java21
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java48
-rw-r--r--clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java8
3 files changed, 33 insertions, 44 deletions
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 5c910983bc9..1587e2696b8 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
@@ -54,7 +54,7 @@ import static org.junit.Assert.fail;
*/
public abstract class FleetControllerTest implements Waiter {
- private static Logger log = Logger.getLogger(FleetControllerTest.class.getName());
+ private static final Logger log = Logger.getLogger(FleetControllerTest.class.getName());
private static final int DEFAULT_NODE_COUNT = 10;
Supervisor supervisor;
@@ -342,10 +342,6 @@ public abstract class FleetControllerTest implements Waiter {
fleetController.waitForCompleteCycle(timeoutMS);
}
- protected void verifyNodeEvents(Node n, String exp) {
- verifyNodeEvents(n, exp, null);
- }
-
private static class ExpectLine {
Pattern regex;
int matchedCount = 0;
@@ -390,17 +386,15 @@ public abstract class FleetControllerTest implements Waiter {
* <li>The rest of the line is a regular expression.
* </ul>
*/
- private void verifyNodeEvents(Node n, String exp, String ignoreRegex) {
- Pattern ignorePattern = (ignoreRegex == null ? null : Pattern.compile(ignoreRegex));
+ protected void verifyNodeEvents(Node n, String exp) {
List<NodeEvent> events = fleetController.getNodeEvents(n);
String[] expectLines = exp.split("\n");
- List<ExpectLine> expected = new ArrayList<ExpectLine>();
+ List<ExpectLine> expected = new ArrayList<>();
for (String line : expectLines) {
expected.add(new ExpectLine(line));
}
boolean mismatch = false;
- StringBuilder eventLog = new StringBuilder();
StringBuilder errors = new StringBuilder();
int gotno = 0;
@@ -413,16 +407,10 @@ public abstract class FleetControllerTest implements Waiter {
eventLine = e.toString();
}
- if (ignorePattern != null && ignorePattern.matcher(eventLine).matches()) {
- ++gotno;
- continue;
- }
-
ExpectLine pattern = null;
if (expno < expected.size()) {
pattern = expected.get(expno);
}
- eventLog.append(eventLine).append("\n");
if (pattern == null) {
errors.append("Exhausted expected list before matching event " + gotno
@@ -456,9 +444,6 @@ public abstract class FleetControllerTest implements Waiter {
StringBuilder eventsGotten = new StringBuilder();
for (Event e : events) {
String eventLine = e.toString();
- if (ignorePattern != null && ignorePattern.matcher(eventLine).matches()) {
- continue;
- }
eventsGotten.append(eventLine).append("\n");
}
errors.append("\nExpected events matching:\n" + exp + "\n");
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
index 557765ca761..e517fb782ef 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MasterElectionTest.java
@@ -31,10 +31,10 @@ import static org.junit.Assert.assertTrue;
public class MasterElectionTest extends FleetControllerTest {
- private static Logger log = Logger.getLogger(MasterElectionTest.class.getName());
+ private static final Logger log = Logger.getLogger(MasterElectionTest.class.getName());
private Supervisor supervisor;
- private List<FleetController> fleetControllers = new ArrayList<>();
+ private final List<FleetController> fleetControllers = new ArrayList<>();
@Rule
public TestRule cleanupZookeeperLogsOnSuccess = new CleanupZookeeperLogsOnSuccess();
@@ -74,12 +74,12 @@ public class MasterElectionTest extends FleetControllerTest {
private void waitForZookeeperDisconnected() throws TimeoutException {
long maxTime = System.currentTimeMillis() + timeoutMS;
- for(FleetController f : fleetControllers) {
- while (true) {
- if (!f.hasZookeeperConnection()) break;
+ for (FleetController f : fleetControllers) {
+ while (f.hasZookeeperConnection()) {
timer.advanceTime(1000);
- try{ Thread.sleep(1); } catch (InterruptedException e) {}
- if (System.currentTimeMillis() > maxTime) throw new TimeoutException("Failed to notice zookeeper down within timeout of " + timeoutMS + " ms");
+ try { Thread.sleep(1); } catch (InterruptedException e) {}
+ if (System.currentTimeMillis() > maxTime)
+ throw new TimeoutException("Failed to notice zookeeper down within timeout of " + timeoutMS + " ms");
}
}
waitForCompleteCycles();
@@ -116,7 +116,6 @@ public class MasterElectionTest extends FleetControllerTest {
/** Ignored for unknown reasons */
@Test
- @Ignore
public void testMasterElection() throws Exception {
startingTest("MasterElectionTest::testMasterElection");
log.log(Level.INFO, "STARTING TEST: MasterElectionTest::testMasterElection()");
@@ -226,24 +225,20 @@ public class MasterElectionTest extends FleetControllerTest {
startingTest("MasterElectionTest::testClusterStateVersionIncreasesAcrossMasterElections");
FleetControllerOptions options = defaultOptions("mycluster");
options.masterZooKeeperCooldownPeriod = 1;
- setUpFleetController(5, false, options);
+ setUpFleetController(3, false, options);
// Currently need to have content nodes present for the cluster controller to even bother
// attempting to persisting its cluster state version to ZK.
setUpVdsNodes(false, new DummyVdsNodeOptions());
fleetController = fleetControllers.get(0); // Required to prevent waitForStableSystem from NPE'ing
waitForStableSystem();
waitForMaster(0);
- Stream.of(0, 1, 2, 3, 4).forEach(this::waitForCompleteCycle);
+ Stream.of(0, 1, 2).forEach(this::waitForCompleteCycle);
StrictlyIncreasingVersionChecker checker = StrictlyIncreasingVersionChecker.bootstrappedWith(
fleetControllers.get(0).getClusterState());
fleetControllers.get(0).shutdown();
waitForMaster(1);
- Stream.of(1, 2, 3, 4).forEach(this::waitForCompleteCycle);
+ Stream.of(1, 2).forEach(this::waitForCompleteCycle);
checker.updateAndVerify(fleetControllers.get(1).getClusterState());
- fleetControllers.get(1).shutdown();
- waitForMaster(2); // Still a quorum available
- Stream.of(2, 3, 4).forEach(this::waitForCompleteCycle);
- checker.updateAndVerify(fleetControllers.get(2).getClusterState());
}
@Test
@@ -275,7 +270,7 @@ public class MasterElectionTest extends FleetControllerTest {
FleetControllerOptions options = defaultOptions("mycluster");
options.masterZooKeeperCooldownPeriod = 100;
options.zooKeeperServerAddress = "localhost";
- setUpFleetController(5, false, options);
+ setUpFleetController(3, false, options);
waitForMaster(0);
log.log(Level.INFO, "STOPPING ZOOKEEPER SERVER AT " + zooKeeperServer.getAddress());
@@ -329,12 +324,21 @@ public class MasterElectionTest extends FleetControllerTest {
long endTime = System.currentTimeMillis() + timeoutMS;
while (System.currentTimeMillis() < endTime) {
boolean allOk = true;
- for (int i=0; i<nodes.length; ++i) {
+ for (int node : nodes) {
Request req = new Request("getMaster");
- connections.get(nodes[i]).invokeSync(req, FleetControllerTest.timeoutS);
- if (req.isError()) { allOk = false; break; }
- if (master != null && master != req.returnValues().get(0).asInt32()) { allOk = false; break; }
- if (reason != null && !reason.equals(req.returnValues().get(1).asString())) { allOk = false; break; }
+ connections.get(node).invokeSync(req, FleetControllerTest.timeoutS);
+ if (req.isError()) {
+ allOk = false;
+ break;
+ }
+ if (master != null && master != req.returnValues().get(0).asInt32()) {
+ allOk = false;
+ break;
+ }
+ if (reason != null && ! reason.equals(req.returnValues().get(1).asString())) {
+ allOk = false;
+ break;
+ }
}
if (allOk) return;
try{ Thread.sleep(100); } catch (InterruptedException e) {}
@@ -354,7 +358,7 @@ public class MasterElectionTest extends FleetControllerTest {
waitForMaster(0);
supervisor = new Supervisor(new Transport());
- List<Target> connections = new ArrayList<Target>();
+ List<Target> connections = new ArrayList<>();
for (FleetController fleetController : fleetControllers) {
int rpcPort = fleetController.getRpcPort();
Target connection = supervisor.connect(new Spec("localhost", rpcPort));
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java
index 73b4163d542..7861db249bd 100644
--- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java
+++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ZooKeeperTestServer.java
@@ -14,10 +14,10 @@ import java.time.Duration;
* This class sets up a zookeeper server, such that we can test fleetcontroller zookeeper parts without stubbing in the client.
*/
public class ZooKeeperTestServer {
- private File zooKeeperDir;
- private ZooKeeperServer server;
+ private final File zooKeeperDir;
+ private final ZooKeeperServer server;
private static final Duration tickTime = Duration.ofMillis(2000);
- private NIOServerCnxnFactory factory;
+ private final NIOServerCnxnFactory factory;
private static final String DIR_PREFIX = "test_fltctrl_zk";
private static final String DIR_POSTFIX = "sdir";
@@ -39,7 +39,7 @@ public class ZooKeeperTestServer {
try{
factory.startup(server);
} catch (InterruptedException e) {
- throw (RuntimeException) new IllegalStateException("Interrupted during test startup: ").initCause(e);
+ throw new IllegalStateException("Interrupted during test startup: ", e);
}
}