diff options
author | Martin Polden <mpolden@mpolden.no> | 2021-03-01 12:16:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-01 12:16:18 +0100 |
commit | 248bc7e05f481835f4a6f7f372df4f6e7a26fe1b (patch) | |
tree | ab3f0680bf45a0e6f388f6225564723276ae2c23 | |
parent | df203c7c13581ed675a221ad3f907a960da120a1 (diff) | |
parent | ea35f4d366c7d6b580d4e1d97cf91e4448196d72 (diff) |
Merge pull request #16715 from vespa-engine/revert-16686-mpolden/reconfigure-configsrv
Revert "Periodically reconfigure config server ZooKeeper cluster"
13 files changed, 8 insertions, 320 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 4f2b60b839f..5e030014c83 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -273,12 +273,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag DYNAMIC_CONFIG_SERVER_PROVISIONING = defineFeatureFlag( - "dynamic-config-server-provisioning", false, - List.of("mpolden"), "2021-02-26", "2021-05-01", - "Enable dynamic provisioning of config servers", - "Takes effect immediately"); - /** WARNING: public for testing: All flags should be defined in {@link Flags}. */ public static UnboundBooleanFlag defineFeatureFlag(String flagId, boolean defaultValue, List<String> owners, String createdAt, String expiresAt, String description, diff --git a/node-admin/pom.xml b/node-admin/pom.xml index ad41ac63915..52873501744 100644 --- a/node-admin/pom.xml +++ b/node-admin/pom.xml @@ -149,12 +149,6 @@ <version>${project.version}</version> <scope>test</scope> </dependency> - <dependency> - <groupId>com.yahoo.vespa</groupId> - <artifactId>zookeeper-server-common</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> </dependencies> <build> <plugins> diff --git a/node-repository/pom.xml b/node-repository/pom.xml index 8e2a7ca0627..fb46735ec73 100644 --- a/node-repository/pom.xml +++ b/node-repository/pom.xml @@ -83,12 +83,6 @@ <version>${project.version}</version> <scope>provided</scope> </dependency> - <dependency> - <groupId>com.yahoo.vespa</groupId> - <artifactId>zookeeper-server-common</artifactId> - <version>${project.version}</version> - <scope>provided</scope> - </dependency> <!-- compile --> <dependency> diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurer.java deleted file mode 100644 index 97113d663d4..00000000000 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurer.java +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.provision.maintenance; - -import com.yahoo.config.provision.NodeType; -import com.yahoo.jdisc.Metric; -import com.yahoo.vespa.flags.BooleanFlag; -import com.yahoo.vespa.flags.Flags; -import com.yahoo.vespa.hosted.provision.Node; -import com.yahoo.vespa.hosted.provision.NodeList; -import com.yahoo.vespa.hosted.provision.NodeRepository; -import com.yahoo.vespa.zookeeper.Reconfigurer; -import com.yahoo.vespa.zookeeper.ZooKeeperServer; - -import java.time.Duration; -import java.util.List; -import java.util.stream.Collectors; - -/** - * Reconfigure members of the config server ZooKeeper cluster, according to the config servers currently active in the - * node repository. - * - * @author mpolden - */ -public class ConfigServerReconfigurer extends NodeRepositoryMaintainer { - - /** Minimum number of config servers required before attempting reconfiguration */ - private static final int MIN_ACTIVE_NODES = 3; - - private final Reconfigurer reconfigurer; - private final BooleanFlag featureFlag; - - public ConfigServerReconfigurer(NodeRepository nodeRepository, Duration interval, Metric metric, Reconfigurer reconfigurer) { - super(nodeRepository, interval, metric); - this.reconfigurer = reconfigurer; - this.featureFlag = Flags.DYNAMIC_CONFIG_SERVER_PROVISIONING.bindTo(nodeRepository.flagSource()); - } - - @Override - protected boolean maintain() { - if (!nodeRepository().zone().getCloud().dynamicProvisioning()) return true; - if (!featureFlag.value()) return true; - - NodeList configNodes = nodeRepository().nodes().list(Node.State.active) - .nodeType(NodeType.config); - if (configNodes.size() < MIN_ACTIVE_NODES) return true; - List<ZooKeeperServer> servers = configNodes.stream() - .map(node -> new ZooKeeperServer(node.allocation().get().membership().index(), node.hostname())) - .collect(Collectors.toList()); - reconfigurer.reconfigure(servers); - return true; - } - -} diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java index 01bbaffa1ed..8929d7f9939 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeRepositoryMaintenance.java @@ -17,7 +17,6 @@ import com.yahoo.vespa.hosted.provision.autoscale.MetricsDb; import com.yahoo.vespa.hosted.provision.provisioning.ProvisionServiceProvider; import com.yahoo.vespa.orchestrator.Orchestrator; import com.yahoo.vespa.service.monitor.ServiceMonitor; -import com.yahoo.vespa.zookeeper.Reconfigurer; import java.time.Duration; import java.util.List; @@ -39,8 +38,7 @@ public class NodeRepositoryMaintenance extends AbstractComponent { HostLivenessTracker hostLivenessTracker, ServiceMonitor serviceMonitor, Zone zone, Orchestrator orchestrator, Metric metric, ProvisionServiceProvider provisionServiceProvider, FlagSource flagSource, - MetricsFetcher metricsFetcher, MetricsDb metricsDb, - Reconfigurer reconfigurer) { + MetricsFetcher metricsFetcher, MetricsDb metricsDb) { DefaultTimes defaults = new DefaultTimes(zone, deployer); PeriodicApplicationMaintainer periodicApplicationMaintainer = new PeriodicApplicationMaintainer(deployer, metric, nodeRepository, defaults.redeployMaintainerInterval, @@ -67,7 +65,6 @@ public class NodeRepositoryMaintenance extends AbstractComponent { maintainers.add(new AutoscalingMaintainer(nodeRepository, metricsDb, deployer, metric, defaults.autoscalingInterval)); maintainers.add(new ScalingSuggestionsMaintainer(nodeRepository, metricsDb, defaults.scalingSuggestionsInterval, metric)); maintainers.add(new SwitchRebalancer(nodeRepository, defaults.switchRebalancerInterval, metric, deployer)); - maintainers.add(new ConfigServerReconfigurer(nodeRepository, defaults.configServerReconfigurerInterval, metric, reconfigurer)); if (Set.of(Environment.staging, Environment.perf, Environment.prod).contains(zone.environment()) || (zone.system().isCd() && zone.environment() == Environment.dev)) // TODO: Temporarily when testing the feature maintainers.add(new DedicatedClusterControllerClusterMigrator(deployer, metric, nodeRepository, defaults.dedicatedClusterControllerMigratorInterval, flagSource, orchestrator)); @@ -120,7 +117,6 @@ public class NodeRepositoryMaintenance extends AbstractComponent { private final Duration autoscalingInterval; private final Duration scalingSuggestionsInterval; private final Duration switchRebalancerInterval; - private final Duration configServerReconfigurerInterval; private final Duration dedicatedClusterControllerMigratorInterval; private final NodeFailer.ThrottlePolicy throttlePolicy; @@ -148,7 +144,6 @@ public class NodeRepositoryMaintenance extends AbstractComponent { scalingSuggestionsInterval = Duration.ofMinutes(31); spareCapacityMaintenanceInterval = Duration.ofMinutes(30); switchRebalancerInterval = Duration.ofHours(1); - configServerReconfigurerInterval = Duration.ofSeconds(90); throttlePolicy = NodeFailer.ThrottlePolicy.hosted; retiredExpiry = Duration.ofDays(4); // give up migrating data after 4 days dedicatedClusterControllerMigratorInterval = zone.environment() == Environment.staging || zone.system().isCd() ? Duration.ofMinutes(3) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java index e1850b03944..5e40c0bd9ff 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/ContainerConfig.java @@ -29,7 +29,6 @@ public class ContainerConfig { " <component id='com.yahoo.vespa.hosted.provision.testutils.MockMetricsFetcher'/>\n" + " <component id='com.yahoo.vespa.hosted.provision.testutils.MockNodeRepository'/>\n" + " <component id='com.yahoo.vespa.hosted.provision.testutils.MockProvisionServiceProvider'/>\n" + - " <component id='com.yahoo.vespa.hosted.provision.testutils.MockReconfigurer'/>\n" + " <component id='com.yahoo.vespa.hosted.provision.maintenance.NodeRepositoryMaintenance'/>\n" + " <component id='com.yahoo.vespa.flags.InMemoryFlagSource'/>\n" + " <component id='com.yahoo.config.provision.Zone'/>\n" + diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockReconfigurer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockReconfigurer.java deleted file mode 100644 index 0b18c144621..00000000000 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/testutils/MockReconfigurer.java +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.provision.testutils; - -import com.yahoo.vespa.zookeeper.ReconfigException; -import com.yahoo.vespa.zookeeper.Reconfigurer; -import com.yahoo.vespa.zookeeper.Sleeper; -import com.yahoo.vespa.zookeeper.VespaZooKeeperAdmin; -import com.yahoo.vespa.zookeeper.ZooKeeperServer; - -import java.time.Duration; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @author mpolden - */ -public class MockReconfigurer extends Reconfigurer { - - private List<ZooKeeperServer> servers = List.of(); - private int reconfigurations = 0; - - public MockReconfigurer() { - super(new MockVespaZooKeperAdmin(), new Sleeper() { - @Override - public void sleep(Duration duration) { - // Ignored - } - }); - } - - @Override - public void reconfigure(List<ZooKeeperServer> wantedServers) { - servers = wantedServers.stream() - .sorted(Comparator.comparing(ZooKeeperServer::id)) - .collect(Collectors.toUnmodifiableList()); - reconfigurations++; - } - - public List<ZooKeeperServer> servers() { - return servers; - } - - public int reconfigurations() { - return reconfigurations; - } - - private static class MockVespaZooKeperAdmin implements VespaZooKeeperAdmin { - - @Override - public void reconfigure(String connectionSpec, String joiningServers, String leavingServers) throws ReconfigException { - } - - } - -} diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurerTest.java deleted file mode 100644 index 1b7d90e426b..00000000000 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ConfigServerReconfigurerTest.java +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.hosted.provision.maintenance; - -import com.yahoo.component.Version; -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Cloud; -import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.NodeResources; -import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.SystemName; -import com.yahoo.config.provision.Zone; -import com.yahoo.vespa.flags.Flags; -import com.yahoo.vespa.flags.InMemoryFlagSource; -import com.yahoo.vespa.hosted.provision.Node; -import com.yahoo.vespa.hosted.provision.NodeList; -import com.yahoo.vespa.hosted.provision.node.Agent; -import com.yahoo.vespa.hosted.provision.provisioning.FatalProvisioningException; -import com.yahoo.vespa.hosted.provision.provisioning.HostProvisioner; -import com.yahoo.vespa.hosted.provision.provisioning.ProvisionedHost; -import com.yahoo.vespa.hosted.provision.provisioning.ProvisioningTester; -import com.yahoo.vespa.hosted.provision.testutils.MockReconfigurer; -import com.yahoo.vespa.zookeeper.ZooKeeperServer; -import org.junit.Test; - -import java.time.Duration; -import java.util.List; -import java.util.Set; - -import static org.junit.Assert.assertEquals; - -/** - * @author mpolden - */ -public class ConfigServerReconfigurerTest { - - @Test - public void maintain() { - InMemoryFlagSource flagSource = new InMemoryFlagSource(); - flagSource.withBooleanFlag(Flags.DYNAMIC_CONFIG_SERVER_PROVISIONING.id(), true); - ProvisioningTester tester = new ProvisioningTester.Builder().zone(new Zone(Cloud.builder().dynamicProvisioning(true).build(), - SystemName.defaultSystem(), - Environment.defaultEnvironment(), - RegionName.defaultName())) - .hostProvisioner(new MockHostProvisioner()) - .flagSource(flagSource) - .build(); - MockReconfigurer reconfigurer = new MockReconfigurer(); - ConfigServerReconfigurer maintainer = new ConfigServerReconfigurer(tester.nodeRepository(), Duration.ofDays(1), - new TestMetric(), reconfigurer); - - // Initially there are not enough config servers to trigger reconfiguration - tester.makeConfigServers(2, 1, "default"); - maintainer.maintain(); - assertEquals("No change: Too few servers", List.of(), reconfigurer.servers()); - - // Another is added, triggering reconfiguration - NodeList configServer = tester.makeConfigServers(1, 3, "default"); - maintainer.maintain(); - List<ZooKeeperServer> configuredServers = List.of(new ZooKeeperServer(0, "cfg1"), - new ZooKeeperServer(1, "cfg2"), - new ZooKeeperServer(2, "cfg3")); - assertEquals("Reconfigured", configuredServers, reconfigurer.servers()); - assertEquals(1, reconfigurer.reconfigurations()); - - // A config server is deallocated, no longer enough active nodes to reconfigure - tester.nodeRepository().nodes().deallocate(configServer.first().get(), Agent.system, this.getClass().getSimpleName()); - maintainer.maintain(); - assertEquals("No change: Too few active servers", configuredServers, reconfigurer.servers()); - assertEquals(1, reconfigurer.reconfigurations()); - } - - private static class MockHostProvisioner implements HostProvisioner { - - @Override - public List<ProvisionedHost> provisionHosts(List<Integer> provisionIndexes, NodeResources resources, ApplicationId applicationId, Version osVersion, HostSharing sharing) { - return List.of(); - } - - @Override - public List<Node> provision(Node host, Set<Node> children) throws FatalProvisioningException { - return List.of(); - } - - @Override - public void deprovision(Node host) { - } - - } - -} diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java index 6ebdfe984a0..23f504a9c0f 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTester.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.component.Version; -import com.yahoo.component.Vtag; import com.yahoo.config.provision.ActivationContext; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.ApplicationName; @@ -442,19 +441,11 @@ public class ProvisioningTester { return nodes; } - public NodeList makeConfigServers(int n, int startIndex, String flavor) { - return makeConfigServers(n, startIndex, flavor, Vtag.currentVersion); - } - - public NodeList makeConfigServers(int n, String flavor, Version version) { - return makeConfigServers(n, 1, flavor, version); - } - - public NodeList makeConfigServers(int n, int startIndex, String flavor, Version version) { + public NodeList makeConfigServers(int n, String flavor, Version configServersVersion) { List<Node> nodes = new ArrayList<>(n); MockNameResolver nameResolver = (MockNameResolver)nodeRepository().nameResolver(); - for (int i = startIndex; i < startIndex + n; i++) { + for (int i = 1; i <= n; i++) { String hostname = "cfg" + i; String ipv4 = "127.0.1." + i; @@ -470,7 +461,7 @@ public class ProvisioningTester { ConfigServerApplication application = new ConfigServerApplication(); List<HostSpec> hosts = prepare(application.getApplicationId(), - application.getClusterSpecWithVersion(version), + application.getClusterSpecWithVersion(configServersVersion), application.getCapacity()); activate(application.getApplicationId(), new HashSet<>(hosts)); return nodeRepository.nodes().list(Node.State.active).owner(application.getApplicationId()); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/maintenance.json b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/maintenance.json index d788b321af9..bd4029ec0c0 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/maintenance.json +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/restapi/responses/maintenance.json @@ -4,9 +4,6 @@ "name": "AutoscalingMaintainer" }, { - "name": "ConfigServerReconfigurer" - }, - { "name": "DedicatedClusterControllerClusterMigrator" }, { diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java index 1d47d890421..9c2a543d2ef 100644 --- a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java +++ b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/Reconfigurer.java @@ -20,7 +20,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; /** - * Starts or reconfigures a ZooKeeper server as necessary. This is created as a component + * Starts zookeeper server and supports reconfiguring zookeeper cluster. Created as a component * without any config injected, to make sure that it is not recreated when config changes. * * @author hmusum @@ -45,13 +45,12 @@ public class Reconfigurer extends AbstractComponent { this(vespaZooKeeperAdmin, new Sleeper()); } - public Reconfigurer(VespaZooKeeperAdmin vespaZooKeeperAdmin, Sleeper sleeper) { + Reconfigurer(VespaZooKeeperAdmin vespaZooKeeperAdmin, Sleeper sleeper) { this.vespaZooKeeperAdmin = Objects.requireNonNull(vespaZooKeeperAdmin); this.sleeper = Objects.requireNonNull(sleeper); log.log(Level.FINE, "Created ZooKeeperReconfigurer"); } - /** Start a ZooKeeper server or reconfigure a currently running cluster */ void startOrReconfigure(ZookeeperServerConfig newConfig, VespaZooKeeperServer server, Supplier<QuorumPeer> quorumPeerGetter, Consumer<QuorumPeer> quorumPeerSetter) { if (zooKeeperRunner == null) { @@ -59,22 +58,10 @@ public class Reconfigurer extends AbstractComponent { zooKeeperRunner = startServer(newConfig, server); } quorumPeerSetter.accept(peer); - reconfigure(newConfig); - } - /** Reconfigure a running ZooKeeper cluster with given servers. This is a no-op if servers are unchanged */ - public void reconfigure(List<ZooKeeperServer> wantedServers) { - ZookeeperServerConfig.Builder b = new ZookeeperServerConfig.Builder(); - b.myid(-1) // Required by ZookeeperServerConfig, but not used for reconfiguration - .dynamicReconfiguration(true); - for (var server : wantedServers) { - ZookeeperServerConfig.Server.Builder serverBuilder = new ZookeeperServerConfig.Server.Builder(); - serverBuilder.id(server.id()) - .hostname(server.hostname()); - b.server(serverBuilder); + if (shouldReconfigure(newConfig)) { + reconfigure(newConfig); } - ZookeeperServerConfig newConfig = b.build(); - reconfigure(newConfig); } ZookeeperServerConfig activeConfig() { @@ -90,7 +77,6 @@ public class Reconfigurer extends AbstractComponent { private boolean shouldReconfigure(ZookeeperServerConfig newConfig) { if (!newConfig.dynamicReconfiguration()) return false; if (activeConfig == null) return false; - if (newConfig.server().isEmpty()) return false; return !newConfig.equals(activeConfig()); } @@ -100,9 +86,7 @@ public class Reconfigurer extends AbstractComponent { return runner; } - /** Reconfigure ZooKeeper cluster with given config, if necessary */ private void reconfigure(ZookeeperServerConfig newConfig) { - if (!shouldReconfigure(newConfig)) return; Instant reconfigTriggered = Instant.now(); // No point in trying to reconfigure if there is only one server in the new ensemble, // the others will be shutdown or are about to be shutdown diff --git a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java b/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java deleted file mode 100644 index ef75d0b5da7..00000000000 --- a/zookeeper-server/zookeeper-server-common/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.zookeeper; - -import java.util.Objects; - -/** - * A ZooKeeper server and its ID. - * - * @author mpolden - */ -public class ZooKeeperServer { - - private final int id; - private final String hostname; - - public ZooKeeperServer(int id, String hostname) { - if (id < 0 || id > 255) throw new IllegalArgumentException("server id must be between 0 and 255"); - this.id = id; - this.hostname = Objects.requireNonNull(hostname); - } - - public int id() { - return id; - } - - public String hostname() { - return hostname; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ZooKeeperServer that = (ZooKeeperServer) o; - return id == that.id && hostname.equals(that.hostname); - } - - @Override - public int hashCode() { - return Objects.hash(id, hostname); - } - - @Override - public String toString() { - return "server " + id + "=" + hostname; - } -} diff --git a/zookeeper-server/zookeeper-server-common/src/test/java/com/yahoo/vespa/zookeeper/ReconfigurerTest.java b/zookeeper-server/zookeeper-server-common/src/test/java/com/yahoo/vespa/zookeeper/ReconfigurerTest.java index 97102ed7f58..94ccbc26f03 100644 --- a/zookeeper-server/zookeeper-server-common/src/test/java/com/yahoo/vespa/zookeeper/ReconfigurerTest.java +++ b/zookeeper-server/zookeeper-server-common/src/test/java/com/yahoo/vespa/zookeeper/ReconfigurerTest.java @@ -14,7 +14,6 @@ import java.io.IOException; import java.nio.file.Path; import java.time.Duration; import java.util.Arrays; -import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; @@ -66,11 +65,6 @@ public class ReconfigurerTest { assertEquals(1, reconfigurer.reconfigurations()); assertSame(nextConfig, reconfigurer.activeConfig()); - // No reconfiguration happens with empty config - reconfigurer.startOrReconfigure(createConfig(0, true)); - assertEquals(1, reconfigurer.reconfigurations()); - assertSame(nextConfig, reconfigurer.activeConfig()); - // Cluster shrinks nextConfig = createConfig(3, true); reconfigurer.startOrReconfigure(nextConfig); @@ -87,14 +81,6 @@ public class ReconfigurerTest { assertEquals("1=node2:2182:2183;2181,2=node3:2182:2183;2181", reconfigurer.joiningServers()); assertEquals("1,2", reconfigurer.leavingServers()); assertSame(nextConfig, reconfigurer.activeConfig()); - - // Reconfigure without using config - reconfigurer.reconfigure(List.of(new ZooKeeperServer(0, "node0"), - new ZooKeeperServer(1, "node2"), - new ZooKeeperServer(3, "node4"))); - assertEquals(4, reconfigurer.reconfigurations()); - assertEquals("3=node4:2182:2183;2181", reconfigurer.joiningServers()); - assertEquals("2", reconfigurer.leavingServers()); } @Test |