summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-09-08 20:59:27 +0200
committerGitHub <noreply@github.com>2019-09-08 20:59:27 +0200
commit86552eb8697ec649afa7a51f464c7ca0197e0347 (patch)
treea494b1aaa1d4052e7ce6137e184dd823e6f1f2ed
parent7e3239f6399874bd61a92b0b72f2d5f408b447bf (diff)
parentc5e9a9aeff2112a65906e8632aa07c65b409d4bd (diff)
Merge pull request #10537 from vespa-engine/hmusum/use-zookeeper-server-id-for-singlenode-clusters
Use server id in config for singlenode zookeeper setups
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java2
-rw-r--r--zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java8
-rw-r--r--zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java27
3 files changed, 18 insertions, 19 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
index 2eff081f42d..38a6070d357 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/configserver/ConfigserverCluster.java
@@ -64,6 +64,8 @@ public class ConfigserverCluster extends AbstractConfigProducer
}
String myhostname = HostName.getLocalhost();
+ // TODO: Server index should be in interval [1, 254] according to doc,
+ // however, we cannot change this id for an existing server
for (int i = 0; i < configServers.length; i++) {
if (zookeeperIds[i] < 0) {
throw new IllegalArgumentException(String.format("Zookeeper ids cannot be negative, was %d for %s",
diff --git a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
index 8342dfb16df..5b52f757dad 100644
--- a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
+++ b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java
@@ -70,12 +70,8 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable {
// Includes all available commands in 3.4, except 'wchc' and 'wchp'
// Mandatory when using ZooKeeper 3.5
sb.append("4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs").append("\n");
- if (config.server().size() > 1) {
- ensureThisServerIsRepresented(config.myid(), config.server());
- for (ZookeeperServerConfig.Server server : config.server()) {
- addServerToCfg(sb, server);
- }
- }
+ ensureThisServerIsRepresented(config.myid(), config.server());
+ config.server().forEach(server -> addServerToCfg(sb, server));
return sb.toString();
}
diff --git a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
index db1852d9d2a..3f33892fd45 100644
--- a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
+++ b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java
@@ -29,8 +29,8 @@ public class ZooKeeperServerTest {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
builder.zooKeeperConfigFile(cfgFile.getAbsolutePath());
builder.myidFile(idFile.getAbsolutePath());
- builder.server(newServer(1, "foo", 123, 321));
- builder.myid(1);
+ builder.server(newServer(0, "foo", 123, 321));
+ builder.myid(0);
createServer(builder);
validateConfigFileSingleHost(cfgFile);
validateIdFile(idFile, "");
@@ -42,9 +42,9 @@ public class ZooKeeperServerTest {
File idFile = folder.newFile();
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
builder.zooKeeperConfigFile(cfgFile.getAbsolutePath());
- builder.server(newServer(1, "foo", 123, 321));
- builder.server(newServer(2, "bar", 234, 432));
- builder.server(newServer(3, "baz", 345, 543));
+ builder.server(newServer(0, "foo", 123, 321));
+ builder.server(newServer(1, "bar", 234, 432));
+ builder.server(newServer(2, "baz", 345, 543));
builder.myidFile(idFile.getAbsolutePath());
builder.myid(1);
createServer(builder);
@@ -59,16 +59,16 @@ public class ZooKeeperServerTest {
@Test(expected = RuntimeException.class)
public void require_that_this_id_must_be_present_amongst_servers() {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
- builder.server(newServer(2, "bar", 234, 432));
- builder.server(newServer(3, "baz", 345, 543));
- builder.myid(1);
+ builder.server(newServer(1, "bar", 234, 432));
+ builder.server(newServer(2, "baz", 345, 543));
+ builder.myid(0);
createServer(builder);
}
@Test
public void juteMaxBufferCanBeSet() throws IOException {
ZookeeperServerConfig.Builder builder = new ZookeeperServerConfig.Builder();
- builder.myid(1);
+ builder.myid(0);
File idFile = folder.newFile();
File cfgFile = folder.newFile();
@@ -110,7 +110,8 @@ public class ZooKeeperServerTest {
"clientPort=2181\n" +
"autopurge.purgeInterval=1\n" +
"autopurge.snapRetainCount=15\n" +
- "4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n";
+ "4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" +
+ "server.0=foo:321:123\n";
validateConfigFile(cfgFile, expected);
}
@@ -126,9 +127,9 @@ public class ZooKeeperServerTest {
"autopurge.purgeInterval=1\n" +
"autopurge.snapRetainCount=15\n" +
"4lw.commands.whitelist=conf,cons,crst,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" +
- "server.1=foo:321:123\n" +
- "server.2=bar:432:234\n" +
- "server.3=baz:543:345\n";
+ "server.0=foo:321:123\n" +
+ "server.1=bar:432:234\n" +
+ "server.2=baz:543:345\n";
validateConfigFile(cfgFile, expected);
}