diff --git a/LICENSE-binary b/LICENSE-binary
index cb76de697a..ec085a5c49 100644
--- a/LICENSE-binary
+++ b/LICENSE-binary
@@ -316,9 +316,9 @@ org.apache.commons:commons-lang3:3.12.0
org.apache.commons:commons-math3:3.1.1
org.apache.commons:commons-text:1.10.0
org.apache.commons:commons-validator:1.6
-org.apache.curator:curator-client:4.2.0
-org.apache.curator:curator-framework:4.2.0
-org.apache.curator:curator-recipes:4.2.0
+org.apache.curator:curator-client:5.2.0
+org.apache.curator:curator-framework:5.2.0
+org.apache.curator:curator-recipes:5.2.0
org.apache.geronimo.specs:geronimo-jcache_1.0_spec:1.0-alpha-1
org.apache.hbase:hbase-annotations:1.4.8
org.apache.hbase:hbase-client:1.4.8
@@ -345,8 +345,6 @@ org.apache.kerby:kerby-util:1.0.1
org.apache.kerby:kerby-xdr:1.0.1
org.apache.kerby:token-provider:1.0.1
org.apache.yetus:audience-annotations:0.5.0
-org.apache.zookeeper:zookeeper:3.5.6
-org.apache.zookeeper:zookeeper-jute:3.5.6
org.codehaus.jettison:jettison:1.5.1
org.eclipse.jetty:jetty-annotations:9.4.48.v20220622
org.eclipse.jetty:jetty-http:9.4.48.v20220622
@@ -362,6 +360,7 @@ org.eclipse.jetty:jetty-webapp:9.4.48.v20220622
org.eclipse.jetty:jetty-xml:9.4.48.v20220622
org.eclipse.jetty.websocket:javax-websocket-client-impl:9.4.48.v20220622
org.eclipse.jetty.websocket:javax-websocket-server-impl:9.4.48.v20220622
+org.apache.zookeeper:zookeeper:3.6.3
org.ehcache:ehcache:3.3.1
org.lz4:lz4-java:1.7.1
org.objenesis:objenesis:2.6
diff --git a/hadoop-common-project/hadoop-auth/pom.xml b/hadoop-common-project/hadoop-auth/pom.xml
index 6405a8feba..d93372908a 100644
--- a/hadoop-common-project/hadoop-auth/pom.xml
+++ b/hadoop-common-project/hadoop-auth/pom.xml
@@ -128,6 +128,15 @@
org.apache.zookeeper
zookeeper
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
org.apache.curator
curator-framework
diff --git a/hadoop-common-project/hadoop-common/pom.xml b/hadoop-common-project/hadoop-common/pom.xml
index 2b0e7c8079..f31d9afa3b 100644
--- a/hadoop-common-project/hadoop-common/pom.xml
+++ b/hadoop-common-project/hadoop-common/pom.xml
@@ -336,6 +336,10 @@
+
+ io.dropwizard.metrics
+ metrics-core
+
org.apache.zookeeper
zookeeper
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/ClientBaseWithFixes.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/ClientBaseWithFixes.java
index 666000b2f4..2863a39f14 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/ClientBaseWithFixes.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/ClientBaseWithFixes.java
@@ -41,7 +41,6 @@
import org.apache.zookeeper.ZKTestCase;
import org.apache.zookeeper.ZooKeeper;
import org.apache.zookeeper.server.ServerCnxnFactory;
-import org.apache.zookeeper.server.ServerCnxnFactoryAccessor;
import org.apache.zookeeper.server.ZKDatabase;
import org.apache.zookeeper.server.ZooKeeperServer;
import org.apache.zookeeper.server.persistence.FileTxnLog;
@@ -60,10 +59,10 @@
* we run these tests with the upstream ClientBase.
*/
public abstract class ClientBaseWithFixes extends ZKTestCase {
- protected static final Logger LOG = LoggerFactory.getLogger(ClientBaseWithFixes.class);
+ protected static final Logger LOG = LoggerFactory.getLogger(ClientBaseWithFixes.class);
- public static int CONNECTION_TIMEOUT = 30000;
- static final File BASETEST = GenericTestUtils.getTestDir();
+ public static int CONNECTION_TIMEOUT = 30000;
+ static final File BASETEST = GenericTestUtils.getTestDir();
static {
// The 4-letter-words commands are simple diagnostics telnet commands in
@@ -74,411 +73,409 @@ public abstract class ClientBaseWithFixes extends ZKTestCase {
System.setProperty("zookeeper.4lw.commands.whitelist", "*");
}
- protected final String hostPort = initHostPort();
- protected int maxCnxns = 0;
- protected ServerCnxnFactory serverFactory = null;
- protected File tmpDir = null;
+ protected final String hostPort = initHostPort();
+ protected int maxCnxns = 0;
+ protected ServerCnxnFactory serverFactory = null;
+ protected File tmpDir = null;
+
+ long initialFdCount;
- long initialFdCount;
-
- /**
- * In general don't use this. Only use in the special case that you
- * want to ignore results (for whatever reason) in your test. Don't
- * use empty watchers in real code!
- *
- */
- protected class NullWatcher implements Watcher {
- @Override
- public void process(WatchedEvent event) { /* nada */ }
+ /**
+ * In general don't use this. Only use in the special case that you
+ * want to ignore results (for whatever reason) in your test. Don't
+ * use empty watchers in real code!
+ *
+ */
+ protected class NullWatcher implements Watcher {
+ @Override
+ public void process(WatchedEvent event) { /* nada */ }
+ }
+
+ protected static class CountdownWatcher implements Watcher {
+ // XXX this doesn't need to be volatile! (Should probably be final)
+ volatile CountDownLatch clientConnected;
+ volatile boolean connected;
+ protected ZooKeeper client;
+
+ public void initializeWatchedClient(ZooKeeper zk) {
+ if (client != null) {
+ throw new RuntimeException("Watched Client was already set");
+ }
+ client = zk;
}
- protected static class CountdownWatcher implements Watcher {
- // XXX this doesn't need to be volatile! (Should probably be final)
- volatile CountDownLatch clientConnected;
- volatile boolean connected;
- protected ZooKeeper client;
-
- public void initializeWatchedClient(ZooKeeper zk) {
- if (client != null) {
- throw new RuntimeException("Watched Client was already set");
- }
- client = zk;
- }
-
- public CountdownWatcher() {
- reset();
- }
- synchronized public void reset() {
- clientConnected = new CountDownLatch(1);
- connected = false;
- }
- @Override
- synchronized public void process(WatchedEvent event) {
- if (event.getState() == KeeperState.SyncConnected ||
- event.getState() == KeeperState.ConnectedReadOnly) {
- connected = true;
- notifyAll();
- clientConnected.countDown();
- } else {
- connected = false;
- notifyAll();
- }
- }
- synchronized boolean isConnected() {
- return connected;
- }
- @VisibleForTesting
- public synchronized void waitForConnected(long timeout)
- throws InterruptedException, TimeoutException {
- long expire = Time.now() + timeout;
- long left = timeout;
- while(!connected && left > 0) {
- wait(left);
- left = expire - Time.now();
- }
- if (!connected) {
- throw new TimeoutException("Did not connect");
-
- }
- }
- @VisibleForTesting
- public synchronized void waitForDisconnected(long timeout)
- throws InterruptedException, TimeoutException {
- long expire = Time.now() + timeout;
- long left = timeout;
- while(connected && left > 0) {
- wait(left);
- left = expire - Time.now();
- }
- if (connected) {
- throw new TimeoutException("Did not disconnect");
-
- }
- }
+ public CountdownWatcher() {
+ reset();
}
+ synchronized public void reset() {
+ clientConnected = new CountDownLatch(1);
+ connected = false;
+ }
+ @Override
+ synchronized public void process(WatchedEvent event) {
+ if (event.getState() == KeeperState.SyncConnected ||
+ event.getState() == KeeperState.ConnectedReadOnly) {
+ connected = true;
+ notifyAll();
+ clientConnected.countDown();
+ } else {
+ connected = false;
+ notifyAll();
+ }
+ }
+ synchronized boolean isConnected() {
+ return connected;
+ }
+ @VisibleForTesting
+ public synchronized void waitForConnected(long timeout)
+ throws InterruptedException, TimeoutException {
+ long expire = Time.now() + timeout;
+ long left = timeout;
+ while(!connected && left > 0) {
+ wait(left);
+ left = expire - Time.now();
+ }
+ if (!connected) {
+ throw new TimeoutException("Did not connect");
- protected TestableZooKeeper createClient()
- throws IOException, InterruptedException
+ }
+ }
+ @VisibleForTesting
+ public synchronized void waitForDisconnected(long timeout)
+ throws InterruptedException, TimeoutException {
+ long expire = Time.now() + timeout;
+ long left = timeout;
+ while(connected && left > 0) {
+ wait(left);
+ left = expire - Time.now();
+ }
+ if (connected) {
+ throw new TimeoutException("Did not disconnect");
+
+ }
+ }
+ }
+
+ protected TestableZooKeeper createClient()
+ throws IOException, InterruptedException
+ {
+ return createClient(hostPort);
+ }
+
+ protected TestableZooKeeper createClient(String hp)
+ throws IOException, InterruptedException
+ {
+ CountdownWatcher watcher = new CountdownWatcher();
+ return createClient(watcher, hp);
+ }
+
+ private LinkedList allClients;
+ private boolean allClientsSetup = false;
+
+ protected TestableZooKeeper createClient(CountdownWatcher watcher, String hp)
+ throws IOException, InterruptedException
+ {
+ return createClient(watcher, hp, CONNECTION_TIMEOUT);
+ }
+
+ protected TestableZooKeeper createClient(CountdownWatcher watcher,
+ String hp, int timeout)
+ throws IOException, InterruptedException
+ {
+ watcher.reset();
+ TestableZooKeeper zk = new TestableZooKeeper(hp, timeout, watcher);
+ if (!watcher.clientConnected.await(timeout, TimeUnit.MILLISECONDS))
{
- return createClient(hostPort);
+ Assert.fail("Unable to connect to server");
}
-
- protected TestableZooKeeper createClient(String hp)
- throws IOException, InterruptedException
- {
- CountdownWatcher watcher = new CountdownWatcher();
- return createClient(watcher, hp);
+ synchronized(this) {
+ if (!allClientsSetup) {
+ LOG.error("allClients never setup");
+ Assert.fail("allClients never setup");
+ }
+ if (allClients != null) {
+ allClients.add(zk);
+ } else {
+ // test done - close the zk, not needed
+ zk.close();
+ }
}
+ watcher.initializeWatchedClient(zk);
+ return zk;
+ }
- private LinkedList allClients;
- private boolean allClientsSetup = false;
-
- protected TestableZooKeeper createClient(CountdownWatcher watcher, String hp)
- throws IOException, InterruptedException
- {
- return createClient(watcher, hp, CONNECTION_TIMEOUT);
+ public static class HostPort {
+ String host;
+ int port;
+ public HostPort(String host, int port) {
+ this.host = host;
+ this.port = port;
}
-
- protected TestableZooKeeper createClient(CountdownWatcher watcher,
- String hp, int timeout)
- throws IOException, InterruptedException
- {
- watcher.reset();
- TestableZooKeeper zk = new TestableZooKeeper(hp, timeout, watcher);
- if (!watcher.clientConnected.await(timeout, TimeUnit.MILLISECONDS))
- {
- Assert.fail("Unable to connect to server");
- }
- synchronized(this) {
- if (!allClientsSetup) {
- LOG.error("allClients never setup");
- Assert.fail("allClients never setup");
- }
- if (allClients != null) {
- allClients.add(zk);
- } else {
- // test done - close the zk, not needed
- zk.close();
- }
- }
- watcher.initializeWatchedClient(zk);
- return zk;
+ }
+ public static List parseHostPortList(String hplist) {
+ ArrayList alist = new ArrayList();
+ for (String hp: hplist.split(",")) {
+ int idx = hp.lastIndexOf(':');
+ String host = hp.substring(0, idx);
+ int port;
+ try {
+ port = Integer.parseInt(hp.substring(idx + 1));
+ } catch(RuntimeException e) {
+ throw new RuntimeException("Problem parsing " + hp + e.toString());
+ }
+ alist.add(new HostPort(host,port));
}
+ return alist;
+ }
- public static class HostPort {
- String host;
- int port;
- public HostPort(String host, int port) {
- this.host = host;
- this.port = port;
- }
+ /**
+ * Send the 4letterword
+ * @param host the destination host
+ * @param port the destination port
+ * @param cmd the 4letterword
+ * @return
+ * @throws IOException
+ */
+ public static String send4LetterWord(String host, int port, String cmd)
+ throws IOException
+ {
+ LOG.info("connecting to " + host + " " + port);
+ Socket sock = new Socket(host, port);
+ BufferedReader reader = null;
+ try {
+ OutputStream outstream = sock.getOutputStream();
+ outstream.write(cmd.getBytes());
+ outstream.flush();
+ // this replicates NC - close the output stream before reading
+ sock.shutdownOutput();
+
+ reader =
+ new BufferedReader(
+ new InputStreamReader(sock.getInputStream()));
+ StringBuilder sb = new StringBuilder();
+ String line;
+ while((line = reader.readLine()) != null) {
+ sb.append(line + "\n");
+ }
+ return sb.toString();
+ } finally {
+ sock.close();
+ if (reader != null) {
+ reader.close();
+ }
}
- public static List parseHostPortList(String hplist) {
- ArrayList alist = new ArrayList();
- for (String hp: hplist.split(",")) {
- int idx = hp.lastIndexOf(':');
- String host = hp.substring(0, idx);
- int port;
- try {
- port = Integer.parseInt(hp.substring(idx + 1));
- } catch(RuntimeException e) {
- throw new RuntimeException("Problem parsing " + hp + e.toString());
- }
- alist.add(new HostPort(host,port));
- }
- return alist;
+ }
+
+ public static boolean waitForServerUp(String hp, long timeout) {
+ long start = Time.now();
+ while (true) {
+ try {
+ // if there are multiple hostports, just take the first one
+ HostPort hpobj = parseHostPortList(hp).get(0);
+ String result = send4LetterWord(hpobj.host, hpobj.port, "stat");
+ if (result.startsWith("Zookeeper version:") &&
+ !result.contains("READ-ONLY")) {
+ return true;
+ }
+ } catch (IOException e) {
+ // ignore as this is expected
+ LOG.info("server " + hp + " not up " + e);
+ }
+
+ if (Time.now() > start + timeout) {
+ break;
+ }
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ // ignore
+ }
}
+ return false;
+ }
+ public static boolean waitForServerDown(String hp, long timeout) {
+ long start = Time.now();
+ while (true) {
+ try {
+ HostPort hpobj = parseHostPortList(hp).get(0);
+ send4LetterWord(hpobj.host, hpobj.port, "stat");
+ } catch (IOException e) {
+ return true;
+ }
- /**
- * Send the 4letterword
- * @param host the destination host
- * @param port the destination port
- * @param cmd the 4letterword
- * @return
- * @throws IOException
- */
- public static String send4LetterWord(String host, int port, String cmd)
- throws IOException
- {
- LOG.info("connecting to " + host + " " + port);
- Socket sock = new Socket(host, port);
- BufferedReader reader = null;
- try {
- OutputStream outstream = sock.getOutputStream();
- outstream.write(cmd.getBytes());
- outstream.flush();
- // this replicates NC - close the output stream before reading
- sock.shutdownOutput();
-
- reader =
- new BufferedReader(
- new InputStreamReader(sock.getInputStream()));
- StringBuilder sb = new StringBuilder();
- String line;
- while((line = reader.readLine()) != null) {
- sb.append(line + "\n");
- }
- return sb.toString();
- } finally {
- sock.close();
- if (reader != null) {
- reader.close();
- }
- }
+ if (Time.now() > start + timeout) {
+ break;
+ }
+ try {
+ Thread.sleep(250);
+ } catch (InterruptedException e) {
+ // ignore
+ }
}
+ return false;
+ }
- public static boolean waitForServerUp(String hp, long timeout) {
- long start = Time.now();
- while (true) {
- try {
- // if there are multiple hostports, just take the first one
- HostPort hpobj = parseHostPortList(hp).get(0);
- String result = send4LetterWord(hpobj.host, hpobj.port, "stat");
- if (result.startsWith("Zookeeper version:") &&
- !result.contains("READ-ONLY")) {
- return true;
- }
- } catch (IOException e) {
- // ignore as this is expected
- LOG.info("server " + hp + " not up " + e);
- }
+ public static File createTmpDir() throws IOException {
+ return createTmpDir(BASETEST);
+ }
+ static File createTmpDir(File parentDir) throws IOException {
+ File tmpFile = File.createTempFile("test", ".junit", parentDir);
+ // don't delete tmpFile - this ensures we don't attempt to create
+ // a tmpDir with a duplicate name
+ File tmpDir = new File(tmpFile + ".dir");
+ Assert.assertFalse(tmpDir.exists()); // never true if tmpfile does it's job
+ Assert.assertTrue(tmpDir.mkdirs());
- if (Time.now() > start + timeout) {
- break;
- }
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- // ignore
- }
- }
- return false;
+ return tmpDir;
+ }
+
+ private static int getPort(String hostPort) {
+ String[] split = hostPort.split(":");
+ String portstr = split[split.length-1];
+ String[] pc = portstr.split("/");
+ if (pc.length > 1) {
+ portstr = pc[0];
}
- public static boolean waitForServerDown(String hp, long timeout) {
- long start = Time.now();
- while (true) {
- try {
- HostPort hpobj = parseHostPortList(hp).get(0);
- send4LetterWord(hpobj.host, hpobj.port, "stat");
- } catch (IOException e) {
- return true;
- }
+ return Integer.parseInt(portstr);
+ }
- if (Time.now() > start + timeout) {
- break;
- }
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- // ignore
- }
- }
- return false;
+ static ServerCnxnFactory createNewServerInstance(File dataDir,
+ ServerCnxnFactory factory, String hostPort, int maxCnxns)
+ throws IOException, InterruptedException
+ {
+ ZooKeeperServer zks = new ZooKeeperServer(dataDir, dataDir, 3000);
+ final int PORT = getPort(hostPort);
+ if (factory == null) {
+ factory = ServerCnxnFactory.createFactory(PORT, maxCnxns);
}
+ factory.startup(zks);
+ Assert.assertTrue("waiting for server up",
+ ClientBaseWithFixes.waitForServerUp("127.0.0.1:" + PORT,
+ CONNECTION_TIMEOUT));
- public static File createTmpDir() throws IOException {
- return createTmpDir(BASETEST);
- }
- static File createTmpDir(File parentDir) throws IOException {
- File tmpFile = File.createTempFile("test", ".junit", parentDir);
- // don't delete tmpFile - this ensures we don't attempt to create
- // a tmpDir with a duplicate name
- File tmpDir = new File(tmpFile + ".dir");
- Assert.assertFalse(tmpDir.exists()); // never true if tmpfile does it's job
- Assert.assertTrue(tmpDir.mkdirs());
+ return factory;
+ }
- return tmpDir;
- }
+ static void shutdownServerInstance(ServerCnxnFactory factory,
+ String hostPort)
+ {
+ if (factory != null) {
+ ZKDatabase zkDb;
+ {
+ ZooKeeperServer zs = getServer(factory);
- private static int getPort(String hostPort) {
- String[] split = hostPort.split(":");
- String portstr = split[split.length-1];
- String[] pc = portstr.split("/");
- if (pc.length > 1) {
- portstr = pc[0];
- }
- return Integer.parseInt(portstr);
- }
+ zkDb = zs.getZKDatabase();
+ }
+ factory.shutdown();
+ try {
+ zkDb.close();
+ } catch (IOException ie) {
+ LOG.warn("Error closing logs ", ie);
+ }
+ final int PORT = getPort(hostPort);
- static ServerCnxnFactory createNewServerInstance(File dataDir,
- ServerCnxnFactory factory, String hostPort, int maxCnxns)
- throws IOException, InterruptedException
- {
- ZooKeeperServer zks = new ZooKeeperServer(dataDir, dataDir, 3000);
- final int PORT = getPort(hostPort);
- if (factory == null) {
- factory = ServerCnxnFactory.createFactory(PORT, maxCnxns);
- }
- factory.startup(zks);
- Assert.assertTrue("waiting for server up",
- ClientBaseWithFixes.waitForServerUp("127.0.0.1:" + PORT,
+ Assert.assertTrue("waiting for server down",
+ ClientBaseWithFixes.waitForServerDown("127.0.0.1:" + PORT,
CONNECTION_TIMEOUT));
-
- return factory;
}
+ }
- static void shutdownServerInstance(ServerCnxnFactory factory,
- String hostPort)
- {
- if (factory != null) {
- ZKDatabase zkDb;
- {
- ZooKeeperServer zs = getServer(factory);
-
- zkDb = zs.getZKDatabase();
- }
- factory.shutdown();
- try {
- zkDb.close();
- } catch (IOException ie) {
- LOG.warn("Error closing logs ", ie);
- }
- final int PORT = getPort(hostPort);
+ /**
+ * Test specific setup
+ */
+ public static void setupTestEnv() {
+ // during the tests we run with 100K prealloc in the logs.
+ // on windows systems prealloc of 64M was seen to take ~15seconds
+ // resulting in test Assert.failure (client timeout on first session).
+ // set env and directly in order to handle static init/gc issues
+ System.setProperty("zookeeper.preAllocSize", "100");
+ FileTxnLog.setPreallocSize(100 * 1024);
+ }
- Assert.assertTrue("waiting for server down",
- ClientBaseWithFixes.waitForServerDown("127.0.0.1:" + PORT,
- CONNECTION_TIMEOUT));
- }
+ protected void setUpAll() throws Exception {
+ allClients = new LinkedList();
+ allClientsSetup = true;
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ BASETEST.mkdirs();
+
+ setupTestEnv();
+
+ setUpAll();
+
+ tmpDir = createTmpDir(BASETEST);
+
+ startServer();
+
+ LOG.info("Client test setup finished");
+ }
+
+ private String initHostPort() {
+ BASETEST.mkdirs();
+ int port = 0;
+ try {
+ port = ServerSocketUtil.getPort(port, 100);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
}
+ return "127.0.0.1:" + port;
+ }
- /**
- * Test specific setup
- */
- public static void setupTestEnv() {
- // during the tests we run with 100K prealloc in the logs.
- // on windows systems prealloc of 64M was seen to take ~15seconds
- // resulting in test Assert.failure (client timeout on first session).
- // set env and directly in order to handle static init/gc issues
- System.setProperty("zookeeper.preAllocSize", "100");
- FileTxnLog.setPreallocSize(100 * 1024);
- }
+ protected void startServer() throws Exception {
+ LOG.info("STARTING server");
+ serverFactory = createNewServerInstance(tmpDir, serverFactory, hostPort, maxCnxns);
+ }
- protected void setUpAll() throws Exception {
- allClients = new LinkedList();
- allClientsSetup = true;
- }
+ protected void stopServer() throws Exception {
+ LOG.info("STOPPING server");
+ shutdownServerInstance(serverFactory, hostPort);
+ serverFactory = null;
+ }
- @Before
- public void setUp() throws Exception {
- BASETEST.mkdirs();
- setupTestEnv();
+ protected static ZooKeeperServer getServer(ServerCnxnFactory fac) {
+ return fac.getZooKeeperServer();
+ }
- setUpAll();
-
- tmpDir = createTmpDir(BASETEST);
-
- startServer();
-
- LOG.info("Client test setup finished");
- }
-
- private String initHostPort() {
- BASETEST.mkdirs();
- int port = 0;
+ protected void tearDownAll() throws Exception {
+ synchronized (this) {
+ if (allClients != null) for (ZooKeeper zk : allClients) {
try {
- port = ServerSocketUtil.getPort(port, 100);
- } catch (IOException e) {
- throw new RuntimeException(e);
+ if (zk != null)
+ zk.close();
+ } catch (InterruptedException e) {
+ LOG.warn("ignoring interrupt", e);
}
- return "127.0.0.1:" + port;
+ }
+ allClients = null;
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ LOG.info("tearDown starting");
+
+ tearDownAll();
+
+ stopServer();
+
+ if (tmpDir != null) {
+ Assert.assertTrue("delete " + tmpDir.toString(), recursiveDelete(tmpDir));
}
- protected void startServer() throws Exception {
- LOG.info("STARTING server");
- serverFactory = createNewServerInstance(tmpDir, serverFactory, hostPort, maxCnxns);
- }
-
- protected void stopServer() throws Exception {
- LOG.info("STOPPING server");
- shutdownServerInstance(serverFactory, hostPort);
- serverFactory = null;
- }
-
-
- protected static ZooKeeperServer getServer(ServerCnxnFactory fac) {
- ZooKeeperServer zs = ServerCnxnFactoryAccessor.getZkServer(fac);
-
- return zs;
- }
-
- protected void tearDownAll() throws Exception {
- synchronized (this) {
- if (allClients != null) for (ZooKeeper zk : allClients) {
- try {
- if (zk != null)
- zk.close();
- } catch (InterruptedException e) {
- LOG.warn("ignoring interrupt", e);
- }
- }
- allClients = null;
- }
- }
-
- @After
- public void tearDown() throws Exception {
- LOG.info("tearDown starting");
-
- tearDownAll();
-
- stopServer();
-
- if (tmpDir != null) {
- Assert.assertTrue("delete " + tmpDir.toString(), recursiveDelete(tmpDir));
- }
-
- // This has to be set to null when the same instance of this class is reused between test cases
- serverFactory = null;
- }
-
- public static boolean recursiveDelete(File d) {
- if (d.isDirectory()) {
- File children[] = d.listFiles();
- for (File f : children) {
- Assert.assertTrue("delete " + f.toString(), recursiveDelete(f));
- }
- }
- return d.delete();
+ // This has to be set to null when the same instance of this class is reused between test cases
+ serverFactory = null;
+ }
+
+ public static boolean recursiveDelete(File d) {
+ if (d.isDirectory()) {
+ File children[] = d.listFiles();
+ for (File f : children) {
+ Assert.assertTrue("delete " + f.toString(), recursiveDelete(f));
+ }
}
+ return d.delete();
+ }
}
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverControllerStress.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverControllerStress.java
index bdbf1d9c2c..4dcc74b86d 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverControllerStress.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/ha/TestZKFailoverControllerStress.java
@@ -23,6 +23,7 @@
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.CommonConfigurationKeys;
import org.apache.hadoop.util.Time;
+import org.apache.zookeeper.server.ServerCnxn;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -131,7 +132,7 @@ public void testRandomHealthAndDisconnects() throws Exception {
long st = Time.now();
while (Time.now() - st < runFor) {
cluster.getTestContext().checkException();
- serverFactory.closeAll();
+ serverFactory.closeAll(ServerCnxn.DisconnectReason.SERVER_SHUTDOWN);
Thread.sleep(50);
}
}
diff --git a/hadoop-common-project/hadoop-registry/pom.xml b/hadoop-common-project/hadoop-registry/pom.xml
index d7de0c49cc..204fbbe9da 100644
--- a/hadoop-common-project/hadoop-registry/pom.xml
+++ b/hadoop-common-project/hadoop-registry/pom.xml
@@ -135,6 +135,17 @@
dnsjava
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
+
diff --git a/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/services/MicroZookeeperService.java b/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/services/MicroZookeeperService.java
index 0ab4cd2f3b..994a2565c3 100644
--- a/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/services/MicroZookeeperService.java
+++ b/hadoop-common-project/hadoop-registry/src/main/java/org/apache/hadoop/registry/server/services/MicroZookeeperService.java
@@ -229,7 +229,7 @@ protected void serviceStart() throws Exception {
setupSecurity();
FileTxnSnapLog ftxn = new FileTxnSnapLog(dataDir, dataDir);
- ZooKeeperServer zkServer = new ZooKeeperServer(ftxn, tickTime);
+ ZooKeeperServer zkServer = new ZooKeeperServer(ftxn, tickTime, "");
LOG.info("Starting Local Zookeeper service");
factory = ServerCnxnFactory.createFactory();
diff --git a/hadoop-hdfs-project/hadoop-hdfs-nfs/pom.xml b/hadoop-hdfs-project/hadoop-hdfs-nfs/pom.xml
index 03ac256ace..fbf73e123e 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-nfs/pom.xml
+++ b/hadoop-hdfs-project/hadoop-hdfs-nfs/pom.xml
@@ -83,6 +83,16 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd">
test-jar
test
+
+ io.dropwizard.metrics
+ metrics-core
+ provided
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
org.apache.hadoop.thirdparty
hadoop-shaded-guava
diff --git a/hadoop-hdfs-project/hadoop-hdfs/pom.xml b/hadoop-hdfs-project/hadoop-hdfs/pom.xml
index d0aac40646..aef9bb8f35 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/pom.xml
+++ b/hadoop-hdfs-project/hadoop-hdfs/pom.xml
@@ -62,6 +62,16 @@ https://maven.apache.org/xsd/maven-4.0.0.xsd">
test-jar
test
+
+ io.dropwizard.metrics
+ metrics-core
+ provided
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
org.apache.hadoop.thirdparty
hadoop-shaded-guava
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index 9bb9a9716b..794b33847e 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -99,8 +99,8 @@
${hadoop-thirdparty-shaded-prefix}.protobuf
${hadoop-thirdparty-shaded-prefix}.com.google.common
- 3.5.6
- 4.2.0
+ 3.6.3
+ 5.2.0
3.0.5
2.1.7
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-mawo/hadoop-yarn-applications-mawo-core/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-mawo/hadoop-yarn-applications-mawo-core/pom.xml
index 2e0781e352..a19b87c87d 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-mawo/hadoop-yarn-applications-mawo-core/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-applications-mawo/hadoop-yarn-applications-mawo-core/pom.xml
@@ -104,6 +104,17 @@
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
+
org.slf4j
slf4j-api
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml
index 0e52269041..91c946baba 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/pom.xml
@@ -89,6 +89,16 @@
test-jar
test
+
+ io.dropwizard.metrics
+ metrics-core
+ provided
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
junit
junit
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/pom.xml
index eecc1349cf..7205cfcb69 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-common/pom.xml
@@ -109,6 +109,15 @@
org.apache.zookeeper
zookeeper
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
${leveldbjni.group}
leveldbjni-all
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/pom.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/pom.xml
index b2e46b8b6c..566f6bcc68 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/pom.xml
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/pom.xml
@@ -217,6 +217,15 @@
org.apache.zookeeper
zookeeper
+
+ io.dropwizard.metrics
+ metrics-core
+
+
+ org.xerial.snappy
+ snappy-java
+ provided
+
${leveldbjni.group}
leveldbjni-all