You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ra...@apache.org on 2014/09/28 19:18:16 UTC
svn commit: r1628087 - in /zookeeper/branches/branch-3.4: ./
src/java/main/org/apache/zookeeper/server/
src/java/test/org/apache/zookeeper/server/
Author: rakeshr
Date: Sun Sep 28 17:18:16 2014
New Revision: 1628087
URL: http://svn.apache.org/r1628087
Log:
ZOOKEEPER-2026 Startup order in ServerCnxnFactory-ies is wrong (Stevo Slavic via rakeshr)
Modified:
zookeeper/branches/branch-3.4/CHANGES.txt
zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java
zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java
zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/ZooKeeperServerMainTest.java
Modified: zookeeper/branches/branch-3.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1628087&r1=1628086&r2=1628087&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.4/CHANGES.txt Sun Sep 28 17:18:16 2014
@@ -44,6 +44,8 @@ BUGFIXES:
ZOOKEEPER-2047 testTruncationNullLog fails on windows (flavio via rakeshr)
+ ZOOKEEPER-2026 Startup order in ServerCnxnFactory-ies is wrong (Stevo Slavic via rakeshr)
+
IMPROVEMENTS:
ZOOKEEPER-1575. adding .gitattributes to prevent CRLF and LF mismatches for
Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java?rev=1628087&r1=1628086&r2=1628087&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NIOServerCnxnFactory.java Sun Sep 28 17:18:16 2014
@@ -119,9 +119,9 @@ public class NIOServerCnxnFactory extend
public void startup(ZooKeeperServer zks) throws IOException,
InterruptedException {
start();
+ setZooKeeperServer(zks);
zks.startdata();
zks.startup();
- setZooKeeperServer(zks);
}
@Override
Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java?rev=1628087&r1=1628086&r2=1628087&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/NettyServerCnxnFactory.java Sun Sep 28 17:18:16 2014
@@ -368,9 +368,9 @@ public class NettyServerCnxnFactory exte
public void startup(ZooKeeperServer zks) throws IOException,
InterruptedException {
start();
+ setZooKeeperServer(zks);
zks.startdata();
zks.startup();
- setZooKeeperServer(zks);
}
@Override
Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/ZooKeeperServerMainTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/ZooKeeperServerMainTest.java?rev=1628087&r1=1628086&r2=1628087&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/ZooKeeperServerMainTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/ZooKeeperServerMainTest.java Sun Sep 28 17:18:16 2014
@@ -27,6 +27,7 @@ import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.zookeeper.CreateMode;
+import org.apache.zookeeper.PortAssignment;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZKTestCase;
@@ -129,7 +130,7 @@ public class ZooKeeperServerMainTest ext
public void testStandalone() throws Exception {
ClientBase.setupTestEnv();
- final int CLIENT_PORT = 3181;
+ final int CLIENT_PORT = PortAssignment.unique();
MainThread main = new MainThread(CLIENT_PORT, true);
main.start();
@@ -162,7 +163,7 @@ public class ZooKeeperServerMainTest ext
@Test(timeout = 30000)
public void testAutoCreateDataLogDir() throws Exception {
ClientBase.setupTestEnv();
- final int CLIENT_PORT = 3181;
+ final int CLIENT_PORT = PortAssignment.unique();
MainThread main = new MainThread(CLIENT_PORT, false);
String args[] = new String[1];
@@ -191,6 +192,77 @@ public class ZooKeeperServerMainTest ext
ClientBase.CONNECTION_TIMEOUT));
}
+ @Test
+ public void testJMXRegistrationWithNIO() throws Exception {
+ ClientBase.setupTestEnv();
+ File tmpDir_1 = ClientBase.createTmpDir();
+ ServerCnxnFactory server_1 = startServer(tmpDir_1);
+ File tmpDir_2 = ClientBase.createTmpDir();
+ ServerCnxnFactory server_2 = startServer(tmpDir_2);
+
+ server_1.shutdown();
+ server_2.shutdown();
+
+ deleteFile(tmpDir_1);
+ deleteFile(tmpDir_2);
+ }
+
+ @Test
+ public void testJMXRegistrationWithNetty() throws Exception {
+ String originalServerCnxnFactory = System
+ .getProperty(ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY);
+ System.setProperty(ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY,
+ NettyServerCnxnFactory.class.getName());
+ try {
+ ClientBase.setupTestEnv();
+ File tmpDir_1 = ClientBase.createTmpDir();
+ ServerCnxnFactory server_1 = startServer(tmpDir_1);
+ File tmpDir_2 = ClientBase.createTmpDir();
+ ServerCnxnFactory server_2 = startServer(tmpDir_2);
+
+ server_1.shutdown();
+ server_2.shutdown();
+
+ deleteFile(tmpDir_1);
+ deleteFile(tmpDir_2);
+ } finally {
+ // setting back
+ if (originalServerCnxnFactory == null
+ || originalServerCnxnFactory.isEmpty()) {
+ System.clearProperty(ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY);
+ } else {
+ System.setProperty(
+ ServerCnxnFactory.ZOOKEEPER_SERVER_CNXN_FACTORY,
+ originalServerCnxnFactory);
+ }
+ }
+ }
+
+ private void deleteFile(File f) throws IOException {
+ if (f.isDirectory()) {
+ for (File c : f.listFiles())
+ deleteFile(c);
+ }
+ if (!f.delete())
+ // double check for the file existence
+ if (f.exists()) {
+ throw new IOException("Failed to delete file: " + f);
+ }
+ }
+
+ private ServerCnxnFactory startServer(File tmpDir) throws IOException,
+ InterruptedException {
+ final int CLIENT_PORT = PortAssignment.unique();
+ ZooKeeperServer zks = new ZooKeeperServer(tmpDir, tmpDir, 3000);
+ ServerCnxnFactory f = ServerCnxnFactory.createFactory(CLIENT_PORT, -1);
+ f.startup(zks);
+ Assert.assertNotNull("JMX initialization failed!", zks.jmxServerBean);
+ Assert.assertTrue("waiting for server being up",
+ ClientBase.waitForServerUp("127.0.0.1:" + CLIENT_PORT,
+ CONNECTION_TIMEOUT));
+ return f;
+ }
+
public void process(WatchedEvent event) {
// ignore for this test
}