From 7c1af8af81319e086d52cdb673415506a37858be Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 24 Sep 2019 11:22:14 +0200 Subject: Revert "Revert "Hmusum/upgrade to zookeeper 3.5"" --- clustercontroller-core/pom.xml | 7 ++++++ .../core/database/ZooKeeperDatabase.java | 26 ++++++++++++++-------- parent/pom.xml | 19 ++++++++++++++-- .../com/yahoo/vespa/zookeeper/ZooKeeperServer.java | 12 +++++----- .../yahoo/vespa/zookeeper/ZooKeeperServerTest.java | 8 +++++-- 5 files changed, 54 insertions(+), 18 deletions(-) diff --git a/clustercontroller-core/pom.xml b/clustercontroller-core/pom.xml index 3b1cb16aa96..9ac7c93134c 100644 --- a/clustercontroller-core/pom.xml +++ b/clustercontroller-core/pom.xml @@ -65,6 +65,13 @@ ${project.version} provided + + + com.github.spotbugs + spotbugs-annotations + provided + com.fasterxml.jackson.core jackson-core diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/ZooKeeperDatabase.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/ZooKeeperDatabase.java index 880f2cdaf19..adba17040f0 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/ZooKeeperDatabase.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/database/ZooKeeperDatabase.java @@ -1,25 +1,33 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.clustercontroller.core.database; +import com.yahoo.log.LogLevel; +import com.yahoo.vdslib.state.Node; +import com.yahoo.vdslib.state.NodeState; +import com.yahoo.vdslib.state.State; import com.yahoo.vespa.clustercontroller.core.AnnotatedClusterState; import com.yahoo.vespa.clustercontroller.core.ClusterStateBundle; import com.yahoo.vespa.clustercontroller.core.ContentCluster; import com.yahoo.vespa.clustercontroller.core.rpc.EnvelopedClusterStateBundleCodec; import com.yahoo.vespa.clustercontroller.core.rpc.SlimeClusterStateBundleCodec; -import org.apache.zookeeper.*; -import org.apache.zookeeper.data.Stat; +import org.apache.zookeeper.CreateMode; +import org.apache.zookeeper.KeeperException; +import org.apache.zookeeper.WatchedEvent; +import org.apache.zookeeper.Watcher; +import org.apache.zookeeper.ZooDefs; +import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.data.ACL; -import com.yahoo.log.LogLevel; -import com.yahoo.vdslib.state.NodeState; -import com.yahoo.vdslib.state.State; -import com.yahoo.vdslib.state.Node; +import org.apache.zookeeper.data.Stat; -import java.util.logging.Logger; -import java.util.*; import java.io.IOException; -import java.io.StringWriter; import java.io.PrintWriter; +import java.io.StringWriter; import java.nio.charset.Charset; +import java.util.List; +import java.util.Map; +import java.util.StringTokenizer; +import java.util.TreeMap; +import java.util.logging.Logger; public class ZooKeeperDatabase extends Database { diff --git a/parent/pom.xml b/parent/pom.xml index 7efe36e73f7..ade0bc8725e 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -505,14 +505,17 @@ commons-pool 1.5.6 - + + org.apache.zookeeper zookeeper - 3.4.14 + ${zookeeper.version} org.apache.curator @@ -524,6 +527,17 @@ curator-test ${curator.version} + + + com.github.spotbugs + spotbugs-annotations + + 3.1.9 + + + + org.junit.jupiter junit-jupiter-engine @@ -789,6 +803,7 @@ 5.4.2 0.6.0 3.7.0 + 3.5.5 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 5b52f757dad..6ad927ef44d 100644 --- a/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java +++ b/zkfacade/src/main/java/com/yahoo/vespa/zookeeper/ZooKeeperServer.java @@ -66,10 +66,12 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable { sb.append("clientPort=").append(config.clientPort()).append("\n"); sb.append("autopurge.purgeInterval=").append(config.autopurge().purgeInterval()).append("\n"); sb.append("autopurge.snapRetainCount=").append(config.autopurge().snapRetainCount()).append("\n"); - // See http://zookeeper.apache.org/doc/r3.4.13/zookeeperAdmin.html#sc_zkCommands - // 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"); + // See http://zookeeper.apache.org/doc/r3.5.5/zookeeperAdmin.html#sc_zkCommands + // Includes all available commands in 3.5, except 'wchc' and 'wchp' + sb.append("4lw.commands.whitelist=conf,cons,crst,dirs,dump,envi,mntr,ruok,srst,srvr,stat,wchs").append("\n"); + sb.append("admin.enableServer=false").append("\n"); + // Need NettyServerCnxnFactory to be able to use TLS for communication + sb.append("serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory").append("\n"); ensureThisServerIsRepresented(config.myid(), config.server()); config.server().forEach(server -> addServerToCfg(sb, server)); return sb.toString(); @@ -113,7 +115,7 @@ public class ZooKeeperServer extends AbstractComponent implements Runnable { public void run() { System.setProperty(ZOOKEEPER_JMX_LOG4J_DISABLE, "true"); String[] args = new String[]{getDefaults().underVespaHome(zookeeperServerConfig.zooKeeperConfigFile())}; - log.log(LogLevel.DEBUG, "Starting ZooKeeper server with config: " + args[0]); + log.log(LogLevel.DEBUG, "Starting ZooKeeper server with config file " + args[0]); log.log(LogLevel.INFO, "Trying to establish ZooKeeper quorum (from " + zookeeperServerHostnames(zookeeperServerConfig) + ")"); org.apache.zookeeper.server.quorum.QuorumPeerMain.main(args); } 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 3f33892fd45..920b1c03752 100644 --- a/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java +++ b/zkfacade/src/test/java/com/yahoo/vespa/zookeeper/ZooKeeperServerTest.java @@ -110,7 +110,9 @@ 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,dirs,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" + + "admin.enableServer=false\n" + + "serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory\n" + "server.0=foo:321:123\n"; validateConfigFile(cfgFile, expected); } @@ -126,7 +128,9 @@ 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,dirs,dump,envi,mntr,ruok,srst,srvr,stat,wchs\n" + + "admin.enableServer=false\n" + + "serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory\n" + "server.0=foo:321:123\n" + "server.1=bar:432:234\n" + "server.2=baz:543:345\n"; -- cgit v1.2.3