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 2011/06/14 14:11:56 UTC
svn commit: r1135515 - in /zookeeper/trunk: CHANGES.txt
src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java
Author: fpj
Date: Tue Jun 14 12:11:55 2011
New Revision: 1135515
URL: http://svn.apache.org/viewvc?rev=1135515&view=rev
Log:
ZOOKEEPER-1060. QuorumPeer takes a long time to shutdown (Vishal via fpj)
Modified:
zookeeper/trunk/CHANGES.txt
zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java
Modified: zookeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/trunk/CHANGES.txt?rev=1135515&r1=1135514&r2=1135515&view=diff
==============================================================================
--- zookeeper/trunk/CHANGES.txt (original)
+++ zookeeper/trunk/CHANGES.txt Tue Jun 14 12:11:55 2011
@@ -229,6 +229,8 @@ BUGFIXES:
ZOOKEEPER-1082. modify leader election to correctly take into account current epoch (fpj via breed)
+ ZOOKEEPER-1060. QuorumPeer takes a long time to shutdown (Vishal via fpj)
+
IMPROVEMENTS:
ZOOKEEPER-724. Improve junit test integration - log harness information
(phunt via mahadev)
Modified: zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java?rev=1135515&r1=1135514&r2=1135515&view=diff
==============================================================================
--- zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java (original)
+++ zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java Tue Jun 14 12:11:55 2011
@@ -766,6 +766,7 @@ public class QuorumPeer extends Thread i
}
if(getElectionAlg() != null){
+ this.interrupt();
getElectionAlg().shutdown();
}
try {
Modified: zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java
URL: http://svn.apache.org/viewvc/zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java?rev=1135515&r1=1135514&r2=1135515&view=diff
==============================================================================
--- zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java (original)
+++ zookeeper/trunk/src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerMainTest.java Tue Jun 14 12:11:55 2011
@@ -501,5 +501,29 @@ public class QuorumPeerMainTest extends
}
Assert.assertTrue("fastleaderelection used", found);
}
-
+
+ /**
+ * Verifies that QuorumPeer exits immediately
+ */
+ @Test
+ public void testQuorumPeerExitTime() throws Exception {
+ long maxwait = 3000;
+ final int CLIENT_PORT_QP1 = PortAssignment.unique();
+ String quorumCfgSection =
+ "server.1=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique()
+ + "\nserver.2=127.0.0.1:" + PortAssignment.unique()
+ + ":" + PortAssignment.unique();
+ MainThread q1 = new MainThread(1, CLIENT_PORT_QP1, quorumCfgSection);
+ q1.start();
+ // Let the notifications timeout
+ Thread.sleep(30000);
+ long start = System.currentTimeMillis();
+ q1.shutdown();
+ long end = System.currentTimeMillis();
+ if ((end - start) > maxwait) {
+ Assert.fail("QuorumPeer took " + (end -start) +
+ " to shutdown, expected " + maxwait);
+ }
+ }
}