Repository: aurora Updated Branches: refs/heads/master f5d7e0106 -> 227a3a6e1
Fixup ZooKeeperTestServer restartNetwork. With the upgrade to 3.4.2 and the switch from `NIOServerCnxn.Factory` to `NIOServerCnxnFactory` came a change in the server internals. Calling `connectionFactory.startup(zooKeeperServer)` now eventually calls `ZooKeeperServer.startup` which calls `SessionTrackerImpl.start`. This last is a problem since `SessionTrackerImpl` is a `Thread` and so throws `IllegalThreadStateException`. Reviewed at https://reviews.apache.org/r/41894/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/227a3a6e Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/227a3a6e Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/227a3a6e Branch: refs/heads/master Commit: 227a3a6e12622debcd9c19180e1c1412585c11d2 Parents: f5d7e01 Author: John Sirois <[email protected]> Authored: Mon Jan 4 16:24:40 2016 -0800 Committer: Bill Farner <[email protected]> Committed: Mon Jan 4 16:24:40 2016 -0800 ---------------------------------------------------------------------- .../zookeeper/testing/ZooKeeperTestServer.java | 28 +++++++++++--------- 1 file changed, 16 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/227a3a6e/commons/src/main/java/org/apache/aurora/common/zookeeper/testing/ZooKeeperTestServer.java ---------------------------------------------------------------------- diff --git a/commons/src/main/java/org/apache/aurora/common/zookeeper/testing/ZooKeeperTestServer.java b/commons/src/main/java/org/apache/aurora/common/zookeeper/testing/ZooKeeperTestServer.java index 54b0a09..dc4d389 100644 --- a/commons/src/main/java/org/apache/aurora/common/zookeeper/testing/ZooKeeperTestServer.java +++ b/commons/src/main/java/org/apache/aurora/common/zookeeper/testing/ZooKeeperTestServer.java @@ -42,11 +42,14 @@ public class ZooKeeperTestServer { public static final Amount<Integer, Time> DEFAULT_SESSION_TIMEOUT = Amount.of(100, Time.MILLISECONDS); - protected final ZooKeeperServer zooKeeperServer; + private final LinkedList<Runnable> cleanupActions = Lists.newLinkedList(); + private final File dataDir; + private final File snapDir; + private final Amount<Integer, Time> defaultSessionTimeout; + + private ZooKeeperServer zooKeeperServer; private ServerCnxnFactory connectionFactory; private int port; - private final Amount<Integer, Time> defaultSessionTimeout; - private final LinkedList<Runnable> cleanupActions = Lists.newLinkedList(); /** * @param defaultSessionTimeout the default session timeout for clients created with @@ -59,7 +62,14 @@ public class ZooKeeperTestServer { File snapDir) throws IOException { this.defaultSessionTimeout = Preconditions.checkNotNull(defaultSessionTimeout); + this.dataDir = Preconditions.checkNotNull(dataDir); + this.snapDir = Preconditions.checkNotNull(snapDir); + } + /** + * Starts zookeeper up on an ephemeral port. + */ + public void startNetwork() throws IOException, InterruptedException { zooKeeperServer = new ZooKeeperServer( new FileTxnSnapLog(dataDir, snapDir), @@ -71,19 +81,13 @@ public class ZooKeeperTestServer { // noop } }; - } - /** - * Starts zookeeper up on an ephemeral port. - */ - public void startNetwork() throws IOException, InterruptedException { connectionFactory = new NIOServerCnxnFactory(); connectionFactory.configure( new InetSocketAddress(port), - 60 /* Semi-arbitrary, max 60 connections is the default used by NIOServerCnxnFactory */); - + 60 /* Semi-arbitrary, max 60 connections is the default used by NIOServerCnxnFactory */); connectionFactory.startup(zooKeeperServer); - cleanupActions.addFirst((this::shutdownNetwork)); + cleanupActions.addFirst(this::shutdownNetwork); port = zooKeeperServer.getClientPort(); } @@ -111,7 +115,7 @@ public class ZooKeeperTestServer { */ public final void shutdownNetwork() { if (connectionFactory != null) { - connectionFactory.shutdown(); + connectionFactory.shutdown(); // Also shuts down zooKeeperServer. connectionFactory = null; } }
