You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by fp...@apache.org on 2015/09/23 19:18:12 UTC

svn commit: r1704903 - in /zookeeper/branches/branch-3.4: ./ src/java/main/org/apache/zookeeper/server/quorum/ src/java/systest/org/apache/zookeeper/test/system/ src/java/test/org/apache/zookeeper/server/quorum/ src/java/test/org/apache/zookeeper/test/

Author: fpj
Date: Wed Sep 23 17:18:08 2015
New Revision: 1704903

URL: http://svn.apache.org/viewvc?rev=1704903&view=rev
Log:
ZOOKEEPER-1506: Re-try DNS hostname -> IP resolution if node connection fails (Robert Thille via fpj)

Modified:
    zookeeper/branches/branch-3.4/.gitignore
    zookeeper/branches/branch-3.4/CHANGES.txt
    zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/Learner.java
    zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
    zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
    zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
    zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/BaseSysTest.java
    zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLENewEpochTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLERestartTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLETest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LETest.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumBase.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumUtil.java
    zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/TruncateTest.java

Modified: zookeeper/branches/branch-3.4/.gitignore
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/.gitignore?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/.gitignore (original)
+++ zookeeper/branches/branch-3.4/.gitignore Wed Sep 23 17:18:08 2015
@@ -8,3 +8,15 @@ src/c/generated/
 src/java/generated/
 src/java/lib/ant-eclipse-*
 src/java/lib/ivy-*
+src/c/Makefile.in
+src/c/aclocal.m4
+src/c/autom4te.cache/
+src/c/compile
+src/c/config.guess
+src/c/config.h.in
+src/c/config.sub
+src/c/configure
+src/c/depcomp
+src/c/install-sh
+src/c/ltmain.sh
+src/c/missing

Modified: zookeeper/branches/branch-3.4/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/CHANGES.txt?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.4/CHANGES.txt Wed Sep 23 17:18:08 2015
@@ -116,6 +116,9 @@ BUGFIXES:
 
   ZOOKEEPER-2256: Zookeeper is not using specified JMX port in zkEnv.sh
   (Arshad Mohammad via rakeshr)
+ 
+  ZOOKEEPER-1506: Re-try DNS hostname -> IP resolution if node connection
+  fails (Robert Thille via fpj)
 
 IMPROVEMENTS:
 

Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/Learner.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/Learner.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/Learner.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/Learner.java Wed Sep 23 17:18:08 2015
@@ -197,6 +197,9 @@ public class Learner {
         Vote current = self.getCurrentVote();
         for (QuorumServer s : self.getView().values()) {
             if (s.id == current.getId()) {
+                // Ensure we have the leader's correct IP address before
+                // attempting to connect.
+                s.recreateSocketAddresses();
                 addr = s.addr;
                 break;
             }

Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java Wed Sep 23 17:18:08 2015
@@ -390,11 +390,22 @@ public class QuorumCnxManager {
                 // detail.
                 LOG.warn("Cannot open channel to " + sid
                         + " at election address " + electionAddr, e);
+                // Resolve hostname for this server in case the
+                // underlying ip address has changed.
+                if (self.getView().containsKey(sid)) {
+                    self.getView().get(sid).recreateSocketAddresses();
+                }
                 throw e;
             } catch (IOException e) {
                 LOG.warn("Cannot open channel to " + sid
                         + " at election address " + electionAddr,
                         e);
+                // We can't really tell if the server is actually down or it failed
+                // to connect to the server because the underlying IP address
+                // changed. Resolve the hostname again just in case.
+                if (self.getView().containsKey(sid)) {
+                    self.getView().get(sid).recreateSocketAddresses();
+                }
             }
         } else {
             LOG.debug("There is a connection already for server " + sid);

Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java Wed Sep 23 17:18:08 2015
@@ -26,8 +26,10 @@ import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.net.DatagramPacket;
 import java.net.DatagramSocket;
+import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.SocketException;
+import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -93,20 +95,20 @@ public class QuorumPeer extends ZooKeepe
     private ZKDatabase zkDb;
 
     public static class QuorumServer {
-        public QuorumServer(long id, InetSocketAddress addr,
+        private QuorumServer(long id, InetSocketAddress addr,
                 InetSocketAddress electionAddr) {
             this.id = id;
             this.addr = addr;
             this.electionAddr = electionAddr;
         }
 
-        public QuorumServer(long id, InetSocketAddress addr) {
+        private QuorumServer(long id, InetSocketAddress addr) {
             this.id = id;
             this.addr = addr;
             this.electionAddr = null;
         }
         
-        public QuorumServer(long id, InetSocketAddress addr,
+        private QuorumServer(long id, InetSocketAddress addr,
                     InetSocketAddress electionAddr, LearnerType type) {
             this.id = id;
             this.addr = addr;
@@ -114,10 +116,67 @@ public class QuorumPeer extends ZooKeepe
             this.type = type;
         }
         
+        public QuorumServer(long id, String hostname,
+                            Integer port, Integer electionPort,
+                            LearnerType type) {
+	        this.id = id;
+	        this.hostname=hostname;
+	        if (port!=null){
+                this.port=port;
+	        }
+	        if (electionPort!=null){
+                this.electionPort=electionPort;
+	        }
+	        if (type!=null){
+                this.type = type;
+	        }
+	        this.recreateSocketAddresses();
+	    }
+
+        /**
+         * Performs a DNS lookup of hostname and (re)creates the this.addr and
+         * this.electionAddr InetSocketAddress objects as appropriate
+         *
+         * If the DNS lookup fails, this.addr and electionAddr remain
+         * unmodified, unless they were never set. If this.addr is null, then
+         * it is set with an unresolved InetSocketAddress object. this.electionAddr
+         * is handled similarly.
+         */
+        public void recreateSocketAddresses() {
+            InetAddress address = null;
+            try {
+                address = InetAddress.getByName(this.hostname);
+                LOG.info("Resolved hostname: {} to address: {}", this.hostname, address);
+                this.addr = new InetSocketAddress(address, this.port);
+                if (this.electionPort > 0){
+                    this.electionAddr = new InetSocketAddress(address, this.electionPort);
+                }
+            } catch (UnknownHostException ex) {
+                LOG.warn("Failed to resolve address: {}", this.hostname, ex);
+                // Have we succeeded in the past?
+                if (this.addr != null) {
+                    // Yes, previously the lookup succeeded. Leave things as they are
+                    return;
+                }
+                // The hostname has never resolved. Create our InetSocketAddress(es) as unresolved
+                this.addr = InetSocketAddress.createUnresolved(this.hostname, this.port);
+                if (this.electionPort > 0){
+                    this.electionAddr = InetSocketAddress.createUnresolved(this.hostname,
+                                                                           this.electionPort);
+                }
+            }
+        }
+
         public InetSocketAddress addr;
 
         public InetSocketAddress electionAddr;
         
+        public String hostname;
+
+        public int port=2888;
+
+        public int electionPort=-1;
+
         public long id;
         
         public LearnerType type = LearnerType.PARTICIPANT;

Modified: zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java (original)
+++ zookeeper/branches/branch-3.4/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java Wed Sep 23 17:18:08 2015
@@ -185,31 +185,27 @@ public class QuorumPeerConfig {
                        + " does not have the form host:port or host:port:port " +
                        " or host:port:port:type");
                 }
-                InetSocketAddress addr = new InetSocketAddress(parts[0],
-                        Integer.parseInt(parts[1]));
-                if (parts.length == 2) {
-                    servers.put(Long.valueOf(sid), new QuorumServer(sid, addr));
-                } else if (parts.length == 3) {
-                    InetSocketAddress electionAddr = new InetSocketAddress(
-                            parts[0], Integer.parseInt(parts[2]));
-                    servers.put(Long.valueOf(sid), new QuorumServer(sid, addr,
-                            electionAddr));
-                } else if (parts.length == 4) {
-                    InetSocketAddress electionAddr = new InetSocketAddress(
-                            parts[0], Integer.parseInt(parts[2]));
-                    LearnerType type = LearnerType.PARTICIPANT;
+                LearnerType type = null;
+                String hostname = parts[0];
+                Integer port = Integer.parseInt(parts[1]);
+                Integer electionPort = null;
+                if (parts.length > 2){
+                	electionPort=Integer.parseInt(parts[2]);
+                }
+                if (parts.length > 3){
                     if (parts[3].toLowerCase().equals("observer")) {
                         type = LearnerType.OBSERVER;
-                        observers.put(Long.valueOf(sid), new QuorumServer(sid, addr,
-                                electionAddr,type));
                     } else if (parts[3].toLowerCase().equals("participant")) {
                         type = LearnerType.PARTICIPANT;
-                        servers.put(Long.valueOf(sid), new QuorumServer(sid, addr,
-                                electionAddr,type));
                     } else {
                         throw new ConfigException("Unrecognised peertype: " + value);
                     }
                 }
+                if (type == LearnerType.OBSERVER){
+                    observers.put(Long.valueOf(sid), new QuorumServer(sid, hostname, port, electionPort, type));
+                } else {
+                    servers.put(Long.valueOf(sid), new QuorumServer(sid, hostname, port, electionPort, type));
+                }
             } else if (key.startsWith("group")) {
                 int dot = key.indexOf('.');
                 long gid = Long.parseLong(key.substring(dot + 1));

Modified: zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/BaseSysTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/BaseSysTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/BaseSysTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/BaseSysTest.java Wed Sep 23 17:18:08 2015
@@ -149,12 +149,8 @@ public class BaseSysTest extends TestCas
         qps = new QuorumPeer[count];
         qpsDirs = new File[count];
         for(int i = 1; i <= count; i++) {
-            InetSocketAddress peerAddress = new InetSocketAddress("127.0.0.1",
-                    fakeBasePort + i);
-            InetSocketAddress electionAddr = new InetSocketAddress("127.0.0.1",
-                    serverCount + fakeBasePort + i);
-            peers.put(Long.valueOf(i), new QuorumServer(i, peerAddress,
-                    electionAddr));
+            peers.put(Long.valueOf(i), new QuorumServer(
+                i, "127.0.0.1", fakeBasePort + i, serverCount + fakeBasePort + i, null));
         }
         StringBuilder sb = new StringBuilder();
         for(int i = 0; i < count; i++) {

Modified: zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java (original)
+++ zookeeper/branches/branch-3.4/src/java/systest/org/apache/zookeeper/test/system/QuorumPeerInstance.java Wed Sep 23 17:18:08 2015
@@ -163,7 +163,7 @@ class QuorumPeerInstance implements Inst
             peers = new HashMap<Long,QuorumServer>();
             for(int i = 0; i < parts.length; i++) {
                 String subparts[] = parts[i].split(":");
-                peers.put(Long.valueOf(i), new QuorumServer(i, new InetSocketAddress(subparts[0], Integer.parseInt(subparts[1]))));
+                peers.put(Long.valueOf(i), new QuorumServer(i, subparts[0], Integer.parseInt(subparts[1]), 0, null));
             }
             try {
                 if (LOG.isDebugEnabled()) {

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java Wed Sep 23 17:18:08 2015
@@ -66,9 +66,9 @@ public class CnxManagerTest extends ZKTe
             peerQuorumPort[i] = PortAssignment.unique();
             peerClientPort[i] = PortAssignment.unique();
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(peerQuorumPort[i]),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0",
+                                       peerQuorumPort[i],
+                                       PortAssignment.unique(), null));
             peerTmpdir[i] = ClientBase.createTmpDir();
         }
     }
@@ -164,15 +164,14 @@ public class CnxManagerTest extends ZKTe
     public void testCnxManagerTimeout() throws Exception {
         Random rand = new Random();
         byte b = (byte) rand.nextInt();
+        int finalOctet = b & 0xFF;
         int deadPort = PortAssignment.unique();
-        String deadAddress = new String("10.1.1." + b);
+        String deadAddress = new String("192.0.2." + finalOctet);
             
         LOG.info("This is the dead address I'm trying: " + deadAddress);
             
         peers.put(Long.valueOf(2),
-                new QuorumServer(2,
-                        new InetSocketAddress(deadAddress, deadPort),
-                        new InetSocketAddress(deadAddress, PortAssignment.unique())));
+                  new QuorumServer(2, deadAddress, deadPort, PortAssignment.unique(), null));
         peerTmpdir[2] = ClientBase.createTmpDir();
     
         QuorumPeer peer = new QuorumPeer(peers, peerTmpdir[1], peerTmpdir[1], peerClientPort[1], 3, 1, 1000, 2, 2);

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java Wed Sep 23 17:18:08 2015
@@ -93,9 +93,8 @@ public class FLEBackwardElectionRoundTes
         for(int i = 0; i < count; i++) {
             int clientport = PortAssignment.unique();
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(clientport),
-                            new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", clientport,
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = clientport;
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java Wed Sep 23 17:18:08 2015
@@ -273,9 +273,9 @@ public class FLECompatibilityTest extend
     throws Exception {
         for (int i = 0; i < count; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0",
+                                       PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = PortAssignment.unique();
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java Wed Sep 23 17:18:08 2015
@@ -74,8 +74,7 @@ public class FLEDontCareTest {
         peers = new HashMap<Long,QuorumServer>();
         for(int i = 0; i < 5; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(Long.valueOf(i),
-                            new InetSocketAddress("127.0.0.1", PortAssignment.unique())));
+                      new QuorumServer(Long.valueOf(i), "127.0.0.1", PortAssignment.unique(), 0, null));
         }
         peer = new QuorumPeer(peers,
                 tmpdir,

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java Wed Sep 23 17:18:08 2015
@@ -71,9 +71,8 @@ public class FLELostMessageTest extends
         for(int i = 0; i < count; i++) {
             int clientport = PortAssignment.unique();
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(clientport),
-                            new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", clientport,
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = clientport;
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java Wed Sep 23 17:18:08 2015
@@ -1394,8 +1394,8 @@ public class Zab1_0Test {
         peer.initLimit = 2;
         peer.tickTime = 2000;
         peer.quorumPeers = new HashMap<Long, QuorumServer>();
-        peer.quorumPeers.put(1L, new QuorumServer(0, new InetSocketAddress(33221)));
-        peer.quorumPeers.put(1L, new QuorumServer(1, new InetSocketAddress(33223)));
+        peer.quorumPeers.put(1L, new QuorumServer(0, "0.0.0.0", 33221, 0, null));
+        peer.quorumPeers.put(1L, new QuorumServer(1, "0.0.0.0", 33223, 0, null));
         peer.setQuorumVerifier(new QuorumMaj(3));
         peer.setCnxnFactory(new NullServerCnxnFactory());
         File version2 = new File(tmpDir, "version-2");

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLENewEpochTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLENewEpochTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLENewEpochTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLENewEpochTest.java Wed Sep 23 17:18:08 2015
@@ -157,9 +157,8 @@ public class FLENewEpochTest extends ZKT
           LOG.info("TestLE: " + getTestName()+ ", " + count);
           for(int i = 0; i < count; i++) {
               peers.put(Long.valueOf(i),
-                      new QuorumServer(i,
-                              new InetSocketAddress(PortAssignment.unique()),
-                      new InetSocketAddress(PortAssignment.unique())));
+                        new QuorumServer(i, "0.0.0.0", PortAssignment.unique(),
+                                         PortAssignment.unique(), null));
               tmpdir[i] = ClientBase.createTmpDir();
               port[i] = PortAssignment.unique();
           }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java Wed Sep 23 17:18:08 2015
@@ -62,9 +62,8 @@ public class FLEPredicateTest extends ZK
          */
         for(int i = 0; i < 3; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
         }
 
         /*

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLERestartTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLERestartTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLERestartTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLERestartTest.java Wed Sep 23 17:18:08 2015
@@ -178,9 +178,8 @@ public class FLERestartTest extends ZKTe
         LOG.info("TestLE: " + getTestName()+ ", " + count);
         for(int i = 0; i < count; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = PortAssignment.unique();
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLETest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLETest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLETest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLETest.java Wed Sep 23 17:18:08 2015
@@ -269,9 +269,8 @@ public class FLETest extends ZKTestCase
         LOG.info("TestLE: " + getTestName()+ ", " + count);
         for(int i = 0; i < count; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = PortAssignment.unique();
         }
@@ -366,9 +365,8 @@ public class FLETest extends ZKTestCase
         ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
         for(sid = 0; sid < 3; sid++) {
             peers.put(Long.valueOf(sid),
-                    new QuorumServer(sid,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(sid, "0.0.0.0", PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
             tmpdir[sid] = ClientBase.createTmpDir();
             port[sid] = PortAssignment.unique();
         }
@@ -423,9 +421,8 @@ public class FLETest extends ZKTestCase
         ArrayList<QuorumPeer> peerList = new ArrayList<QuorumPeer>();
         for(sid = 0; sid < 3; sid++) {
             peers.put(Long.valueOf(sid),
-                    new QuorumServer(sid,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(sid, "0.0.0.0", PortAssignment.unique(),
+                                       PortAssignment.unique(), null));
             tmpdir[sid] = ClientBase.createTmpDir();
             port[sid] = PortAssignment.unique();
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/FLEZeroWeightTest.java Wed Sep 23 17:18:08 2015
@@ -153,9 +153,7 @@ public class FLEZeroWeightTest extends Z
         LOG.info("TestZeroWeightQuorum: " + getTestName()+ ", " + count);
         for(int i = 0; i < count; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress(PortAssignment.unique()),
-                    new InetSocketAddress(PortAssignment.unique())));
+                      new QuorumServer(i, "0.0.0.0", PortAssignment.unique(), PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = PortAssignment.unique();
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/HierarchicalQuorumTest.java Wed Sep 23 17:18:08 2015
@@ -128,23 +128,13 @@ public class HierarchicalQuorumTest exte
         int initLimit = 3;
         int syncLimit = 3;
         HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
-        peers.put(Long.valueOf(1), new QuorumServer(1, 
-                new InetSocketAddress("127.0.0.1", port1 + 1000),
-                new InetSocketAddress("127.0.0.1", leport1 + 1000)));        
-        peers.put(Long.valueOf(2), new QuorumServer(2, 
-                new InetSocketAddress("127.0.0.1", port2 + 1000),
-                new InetSocketAddress("127.0.0.1", leport2 + 1000)));
-        peers.put(Long.valueOf(3), new QuorumServer(3, 
-                new InetSocketAddress("127.0.0.1", port3 + 1000),
-                new InetSocketAddress("127.0.0.1", leport3 + 1000)));
-        peers.put(Long.valueOf(4), new QuorumServer(4,
-                new InetSocketAddress("127.0.0.1", port4 + 1000),
-                new InetSocketAddress("127.0.0.1", leport4 + 1000),
+        peers.put(Long.valueOf(1), new QuorumServer(1, "127.0.0.1", port1 + 1000, leport1 + 1000, null));
+        peers.put(Long.valueOf(2), new QuorumServer(2, "127.0.0.1", port2 + 1000, leport2 + 1000, null));
+        peers.put(Long.valueOf(3), new QuorumServer(3, "127.0.0.1", port3 + 1000, leport3 + 1000, null));
+        peers.put(Long.valueOf(4), new QuorumServer(4, "127.0.0.1", port4 + 1000, leport4 + 1000,
                 withObservers ? QuorumPeer.LearnerType.OBSERVER
                         : QuorumPeer.LearnerType.PARTICIPANT));
-        peers.put(Long.valueOf(5), new QuorumServer(5,
-                new InetSocketAddress("127.0.0.1", port5 + 1000),
-                new InetSocketAddress("127.0.0.1", leport5 + 1000),
+        peers.put(Long.valueOf(5), new QuorumServer(5, "127.0.0.1", port5 + 1000, leport5 + 1000,
                 withObservers ? QuorumPeer.LearnerType.OBSERVER
                         : QuorumPeer.LearnerType.PARTICIPANT));
 

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LENonTerminateTest.java Wed Sep 23 17:18:08 2015
@@ -300,9 +300,8 @@ public class LENonTerminateTest extends
         for(int i = 0; i < count; i++) {
             int clientport = PortAssignment.unique();
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress("127.0.0.1", clientport),
-                            new InetSocketAddress("127.0.0.1", PortAssignment.unique())));
+                      new QuorumServer(i, "127.0.0.1", clientport,
+                                       PortAssignment.unique(), null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = clientport;
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LETest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LETest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LETest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/LETest.java Wed Sep 23 17:18:08 2015
@@ -98,9 +98,7 @@ public class LETest extends ZKTestCase {
         votes = new Vote[count];
         for(int i = 0; i < count; i++) {
             peers.put(Long.valueOf(i),
-                    new QuorumServer(i,
-                            new InetSocketAddress("127.0.0.1",
-                                    PortAssignment.unique())));
+                      new QuorumServer(i, "127.0.0.1", PortAssignment.unique(), 0, null));
             tmpdir[i] = ClientBase.createTmpDir();
             port[i] = PortAssignment.unique();
         }

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumBase.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumBase.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumBase.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumBase.java Wed Sep 23 17:18:08 2015
@@ -118,25 +118,20 @@ public class QuorumBase extends ClientBa
         int initLimit = 3;
         int syncLimit = 3;
         HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
-        peers.put(Long.valueOf(1), new QuorumServer(1, 
-                new InetSocketAddress("127.0.0.1", port1 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE1 + 1000),
-                LearnerType.PARTICIPANT));
-        peers.put(Long.valueOf(2), new QuorumServer(2, 
-                new InetSocketAddress("127.0.0.1", port2 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE2 + 1000),
-                LearnerType.PARTICIPANT));
-        peers.put(Long.valueOf(3), new QuorumServer(3, 
-                new InetSocketAddress("127.0.0.1", port3 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE3 + 1000),
-                LearnerType.PARTICIPANT));
-        peers.put(Long.valueOf(4), new QuorumServer(4, 
-                new InetSocketAddress("127.0.0.1", port4 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE4 + 1000),
-                LearnerType.PARTICIPANT));
-        peers.put(Long.valueOf(5), new QuorumServer(5, 
-                new InetSocketAddress("127.0.0.1", port5 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE5 + 1000),
+        peers.put(Long.valueOf(1), new QuorumServer(1, "127.0.0.1", port1 + 1000,
+                                                    portLE1 + 1000,
+                LearnerType.PARTICIPANT));
+        peers.put(Long.valueOf(2), new QuorumServer(2, "127.0.0.1", port2 + 1000,
+                                                    portLE2 + 1000,
+                LearnerType.PARTICIPANT));
+        peers.put(Long.valueOf(3), new QuorumServer(3, "127.0.0.1", port3 + 1000,
+                                                    portLE3 + 1000,
+                LearnerType.PARTICIPANT));
+        peers.put(Long.valueOf(4), new QuorumServer(4, "127.0.0.1", port4 + 1000,
+                                                    portLE4 + 1000,
+                LearnerType.PARTICIPANT));
+        peers.put(Long.valueOf(5), new QuorumServer(5, "127.0.0.1", port5 + 1000,
+                                                    portLE5 + 1000,
                 LearnerType.PARTICIPANT));
         
         if (withObservers) {
@@ -232,25 +227,20 @@ public class QuorumBase extends ClientBa
         if(peers == null){
             peers = new HashMap<Long,QuorumServer>();
 
-            peers.put(Long.valueOf(1), new QuorumServer(1, 
-                new InetSocketAddress("127.0.0.1", port1 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE1 + 1000),
-                LearnerType.PARTICIPANT));
-            peers.put(Long.valueOf(2), new QuorumServer(2, 
-                new InetSocketAddress("127.0.0.1", port2 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE2 + 1000),
-                LearnerType.PARTICIPANT));
-            peers.put(Long.valueOf(3), new QuorumServer(3, 
-                new InetSocketAddress("127.0.0.1", port3 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE3 + 1000),
-                LearnerType.PARTICIPANT));
-            peers.put(Long.valueOf(4), new QuorumServer(4, 
-                new InetSocketAddress("127.0.0.1", port4 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE4 + 1000),
-                LearnerType.PARTICIPANT));
-            peers.put(Long.valueOf(5), new QuorumServer(5, 
-                new InetSocketAddress("127.0.0.1", port5 + 1000),
-                new InetSocketAddress("127.0.0.1", portLE5 + 1000),
+            peers.put(Long.valueOf(1), new QuorumServer(1, "127.0.0.1", port1 + 1000,
+                                                        portLE1 + 1000,
+                LearnerType.PARTICIPANT));
+            peers.put(Long.valueOf(2), new QuorumServer(2, "127.0.0.1", port2 + 1000,
+                                                        portLE2 + 1000,
+                LearnerType.PARTICIPANT));
+            peers.put(Long.valueOf(3), new QuorumServer(3, "127.0.0.1", port3 + 1000,
+                                                        portLE3 + 1000,
+                LearnerType.PARTICIPANT));
+            peers.put(Long.valueOf(4), new QuorumServer(4, "127.0.0.1", port4 + 1000,
+                                                        portLE4 + 1000,
+                LearnerType.PARTICIPANT));
+            peers.put(Long.valueOf(5), new QuorumServer(5, "127.0.0.1", port5 + 1000,
+                                                        portLE5 + 1000,
                 LearnerType.PARTICIPANT));
         }
         

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumUtil.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumUtil.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumUtil.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/QuorumUtil.java Wed Sep 23 17:18:08 2015
@@ -99,9 +99,10 @@ public class QuorumUtil {
                 ps.clientPort = PortAssignment.unique();
                 peers.put(i, ps);
 
-                peersView.put(Long.valueOf(i), new QuorumServer(i, new InetSocketAddress(
-                        "127.0.0.1", ps.clientPort + 1000), new InetSocketAddress("127.0.0.1",
-                        PortAssignment.unique() + 1000), LearnerType.PARTICIPANT));
+                peersView.put(Long.valueOf(i),
+                              new QuorumServer(i, "127.0.0.1", ps.clientPort + 1000,
+                                               PortAssignment.unique() + 1000,
+                                               LearnerType.PARTICIPANT));
                 hostPort += "127.0.0.1:" + ps.clientPort + ((i == ALL) ? "" : ",");
             }
             for (int i = 1; i <= ALL; ++i) {

Modified: zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/TruncateTest.java
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/TruncateTest.java?rev=1704903&r1=1704902&r2=1704903&view=diff
==============================================================================
--- zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/TruncateTest.java (original)
+++ zookeeper/branches/branch-3.4/src/java/test/org/apache/zookeeper/test/TruncateTest.java Wed Sep 23 17:18:08 2015
@@ -201,9 +201,9 @@ public class TruncateTest extends ZKTest
         
         // Start up two of the quorum and add 10 txns
         HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
-        peers.put(Long.valueOf(1), new QuorumServer(1, new InetSocketAddress("127.0.0.1", port1 + 1000)));
-        peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress("127.0.0.1", port2 + 1000)));
-        peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress("127.0.0.1", port3 + 1000)));
+        peers.put(Long.valueOf(1), new QuorumServer(1, "127.0.0.1", port1 + 1000, 0, null));
+        peers.put(Long.valueOf(2), new QuorumServer(2, "127.0.0.1", port2 + 1000, 0, null));
+        peers.put(Long.valueOf(3), new QuorumServer(3, "127.0.0.1", port3 + 1000, 0, null));
 
         QuorumPeer s2 = new QuorumPeer(peers, dataDir2, dataDir2, port2, 0, 2, tickTime, initLimit, syncLimit);
         s2.start();