You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ca...@apache.org on 2013/07/14 22:09:45 UTC
svn commit: r1503045 - in /zookeeper/trunk: CHANGES.txt
src/java/test/org/apache/zookeeper/server/TruncateCorruptionTest.java
src/java/test/org/apache/zookeeper/server/util/PortForwarder.java
src/java/test/org/apache/zookeeper/test/TruncateTest.java
Author: camille
Date: Sun Jul 14 20:09:45 2013
New Revision: 1503045
URL: http://svn.apache.org/r1503045
Log:
ZOOKEEPER-1629. testTransactionLogCorruption occasionally fails. (shralex via camille)
Removed:
zookeeper/trunk/src/java/test/org/apache/zookeeper/server/TruncateCorruptionTest.java
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/PortForwarder.java
zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TruncateTest.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1503045&r1=1503044&r2=1503045&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Sun Jul 14 20:09:45 2013
@@ -364,6 +364,8 @@ BUGFIXES:
receiving successful response to connection request, can cause TCP
RST (Chris Nauroth via phunt)
+ ZOOKEEPER-1629. testTransactionLogCorruption occasionally fails. (shralex via camille)
+
IMPROVEMENTS:
ZOOKEEPER-1170. Fix compiler (eclipse) warnings: unused imports,
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/PortForwarder.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/PortForwarder.java?rev=1503045&r1=1503044&r2=1503045&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/PortForwarder.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/util/PortForwarder.java Sun Jul 14 20:09:45 2013
@@ -36,6 +36,55 @@ import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * A utility that does bi-directional forwarding between two ports.
+ * Useful, for example, to simulate network failures.
+ * Example:
+ *
+ * Server 1 config file:
+ *
+ * server.1=127.0.0.1:7301:7401;8201
+ * server.2=127.0.0.1:7302:7402;8202
+ * server.3=127.0.0.1:7303:7403;8203
+ *
+ * Server 2 and 3 config files:
+ *
+ * server.1=127.0.0.1:8301:8401;8201
+ * server.2=127.0.0.1:8302:8402;8202
+ * server.3=127.0.0.1:8303:8403;8203
+ *
+ * Initially forward traffic between 730x and 830x and between 740x and 830x
+ * This way server 1 can communicate with servers 2 and 3
+ * ....
+ *
+ * List<PortForwarder> pfs = startForwarding();
+ * ....
+ * // simulate a network interruption for server 1
+ * stopForwarding(pfs);
+ * ....
+ * // restore connection
+ * pfs = startForwarding();
+ *
+ *
+ * private List<PortForwarder> startForwarding() throws IOException {
+ * List<PortForwarder> res = new ArrayList<PortForwarder>();
+ * res.add(new PortForwarder(8301, 7301));
+ * res.add(new PortForwarder(8401, 7401));
+ * res.add(new PortForwarder(7302, 8302));
+ * res.add(new PortForwarder(7402, 8402));
+ * res.add(new PortForwarder(7303, 8303));
+ * res.add(new PortForwarder(7403, 8403));
+ * return res;
+ * }
+ *
+ * private void stopForwarding(List<PortForwarder> pfs) throws Exception {
+ * for (PortForwarder pf : pfs) {
+ * pf.shutdown();
+ * }
+ * }
+ *
+ *
+ */
public class PortForwarder extends Thread {
private static final Logger LOG = LoggerFactory
.getLogger(PortForwarder.class);
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TruncateTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TruncateTest.java?rev=1503045&r1=1503044&r2=1503045&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TruncateTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/test/TruncateTest.java Sun Jul 14 20:09:45 2013
@@ -26,6 +26,7 @@ import java.util.HashMap;
import org.apache.jute.Record;
import org.apache.zookeeper.CreateMode;
import org.apache.zookeeper.KeeperException;
+import org.apache.zookeeper.PortAssignment;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZKTestCase;
@@ -53,7 +54,7 @@ import org.slf4j.LoggerFactory;
public class TruncateTest extends ZKTestCase {
private static final Logger LOG = LoggerFactory.getLogger(TruncateTest.class);
File dataDir1, dataDir2, dataDir3;
- final int baseHostPort = 12233;
+ final int baseHostPort = PortAssignment.unique();
@Before
public void setUp() throws IOException {
@@ -161,9 +162,15 @@ 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, new InetSocketAddress("127.0.0.1", port1 + 1000),
+ new InetSocketAddress("127.0.0.1", port1 + 2000),
+ new InetSocketAddress("127.0.0.1", port1 + 3000)));
+ peers.put(Long.valueOf(2), new QuorumServer(2, new InetSocketAddress("127.0.0.1", port2 + 1000),
+ new InetSocketAddress("127.0.0.1", port2 + 2000),
+ new InetSocketAddress("127.0.0.1", port2 + 3000)));
+ peers.put(Long.valueOf(3), new QuorumServer(3, new InetSocketAddress("127.0.0.1", port3 + 1000),
+ new InetSocketAddress("127.0.0.1", port3 + 2000),
+ new InetSocketAddress("127.0.0.1", port3 + 3000)));
QuorumPeer s2 = new QuorumPeer(peers, dataDir2, dataDir2, port2, 0, 2, tickTime, initLimit, syncLimit);
s2.start();