Author: phunt Date: Wed Mar 10 18:52:11 2010 New Revision: 921509 URL: http://svn.apache.org/viewvc?rev=921509&view=rev Log: ZOOKEEPER-693. TestObserver stuck in tight notification loop in FLE
Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Election.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderElection.java hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Wed Mar 10 18:52:11 2010 @@ -258,7 +258,11 @@ BUGFIXES: ZOOKEEPER-685. Race in LENonTerminateTest (henry via breed) - ZOOKEEPER-677. c client doesn't allow ipv6 numeric connect string (breed & phunt & mahadev via breed) + ZOOKEEPER-677. c client doesn't allow ipv6 numeric connect string + (breed & phunt & mahadev via breed) + + ZOOKEEPER-693. TestObserver stuck in tight notification loop in FLE + (flavio via phunt) IMPROVEMENTS: ZOOKEEPER-473. cleanup junit tests to eliminate false positives due to Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/AuthFastLeaderElection.java Wed Mar 10 18:52:11 2010 @@ -808,6 +808,17 @@ public class AuthFastLeaderElection impl } + /** + * There is nothing to shutdown in this implementation of + * leader election, so we simply have an empty method. + */ + public void shutdown(){} + + /** + * Invoked in QuorumPeer to find or elect a new leader. + * + * @throws InterruptedException + */ public Vote lookForLeader() throws InterruptedException { try { self.jmxLeaderElectionBean = new LeaderElectionBean(); Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Election.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Election.java?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Election.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/Election.java Wed Mar 10 18:52:11 2010 @@ -23,4 +23,5 @@ import org.apache.zookeeper.server.quoru public interface Election { public Vote lookForLeader() throws InterruptedException; + public void shutdown(); } \ No newline at end of file Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderElection.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderElection.java?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderElection.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/LeaderElection.java Wed Mar 10 18:52:11 2010 @@ -111,6 +111,17 @@ public class LeaderElection implements E return result; } + /** + * There is nothing to shutdown in this implementation of + * leader election, so we simply have an empty method. + */ + public void shutdown(){} + + /** + * Invoked in QuorumPeer to find or elect a new leader. + * + * @throws InterruptedException + */ public Vote lookForLeader() throws InterruptedException { try { self.jmxLeaderElectionBean = new LeaderElectionBean(); Modified: hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java (original) +++ hadoop/zookeeper/trunk/src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java Wed Mar 10 18:52:11 2010 @@ -670,6 +670,10 @@ public class QuorumPeer extends Thread i if(udpSocket != null) { udpSocket.close(); } + + if(getElectionAlg() != null){ + getElectionAlg().shutdown(); + } } /** Modified: hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java?rev=921509&r1=921508&r2=921509&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java (original) +++ hadoop/zookeeper/trunk/src/java/test/org/apache/zookeeper/test/ObserverTest.java Wed Mar 10 18:52:11 2010 @@ -155,7 +155,7 @@ public class ObserverTest extends Quorum lastEvent.getState() + ")", (KeeperState.SyncConnected==lastEvent.getState() || KeeperState.Expired==lastEvent.getState())); - + q1.shutdown(); q2.shutdown(); q3.shutdown();