You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by iv...@apache.org on 2014/06/03 16:48:51 UTC

svn commit: r1599591 - in /zookeeper/bookkeeper/branches/branch-4.2: ./ bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/ bookkeeper-server/src/test/java/org/apache/boo...

Author: ivank
Date: Tue Jun  3 14:48:51 2014
New Revision: 1599591

URL: http://svn.apache.org/r1599591
Log:
BOOKKEEPER-750: Flake in BookieAutoRecoveryTest#testEmptyLedgerLosesQuorumEventually (ivank)

Modified:
    zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt
    zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java
    zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
    zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java

Modified: zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt?rev=1599591&r1=1599590&r2=1599591&view=diff
==============================================================================
--- zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt (original)
+++ zookeeper/bookkeeper/branches/branch-4.2/CHANGES.txt Tue Jun  3 14:48:51 2014
@@ -42,6 +42,8 @@ Release 4.2.3 - 2013-12-04
 
         BOOKKEEPER-725: AutoRecoveryMain should exit with error code if deathwatcher finds dead thread (ivank)
 
+        BOOKKEEPER-750: Flake in BookieAutoRecoveryTest#testEmptyLedgerLosesQuorumEventually (ivank)
+
     IMPROVEMENT:
 
         BOOKKEEPER-747: Implement register/unregister LedgerMetadataListener in MSLedgerManagerFactory (fpj via sijie)

Modified: zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java?rev=1599591&r1=1599590&r2=1599591&view=diff
==============================================================================
--- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java (original)
+++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/Auditor.java Tue Jun  3 14:48:51 2014
@@ -89,10 +89,13 @@ public class Auditor implements BookiesL
     private LedgerUnderreplicationManager ledgerUnderreplicationManager;
     private final ScheduledExecutorService executor;
     private List<String> knownBookies = new ArrayList<String>();
+    private final String bookieIdentifier;
 
     public Auditor(final String bookieIdentifier, ServerConfiguration conf,
                    ZooKeeper zkc) throws UnavailableException {
         this.conf = conf;
+        this.bookieIdentifier = bookieIdentifier;
+
         initialize(conf, zkc);
 
         executor = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() {
@@ -196,7 +199,7 @@ public class Auditor implements BookiesL
     }
 
     public void start() {
-        LOG.info("I'm starting as Auditor Bookie");
+        LOG.info("I'm starting as Auditor Bookie. ID: {}", bookieIdentifier);
         // on startup watching available bookie and based on the
         // available bookies determining the bookie failures.
         synchronized (this) {

Modified: zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java?rev=1599591&r1=1599590&r2=1599591&view=diff
==============================================================================
--- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java (original)
+++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java Tue Jun  3 14:48:51 2014
@@ -359,7 +359,7 @@ public class BookieAutoRecoveryTest exte
                  LedgerHandleAdapter.getLedgerMetadata(lh).getEnsembles().get(0L));
         killBookie(replicaToKill);
 
-        getAuditor().submitAuditTask().get(); // ensure auditor runs
+        getAuditor(10, TimeUnit.SECONDS).submitAuditTask().get(); // ensure auditor runs
 
         assertTrue("Should be marked as underreplicated", latch.await(5, TimeUnit.SECONDS));
         latch = new CountDownLatch(1);
@@ -374,7 +374,7 @@ public class BookieAutoRecoveryTest exte
                  LedgerHandleAdapter.getLedgerMetadata(lh).getEnsembles().get(0L));
         killBookie(replicaToKill);
 
-        getAuditor().submitAuditTask().get(); // ensure auditor runs
+        getAuditor(10, TimeUnit.SECONDS).submitAuditTask().get(); // ensure auditor runs
 
         assertTrue("Should be marked as underreplicated", latch.await(5, TimeUnit.SECONDS));
         latch = new CountDownLatch(1);

Modified: zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java?rev=1599591&r1=1599590&r2=1599591&view=diff
==============================================================================
--- zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java (original)
+++ zookeeper/bookkeeper/branches/branch-4.2/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java Tue Jun  3 14:48:51 2014
@@ -31,6 +31,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 import junit.framework.TestCase;
 
@@ -531,12 +532,16 @@ public abstract class BookKeeperClusterT
         }
     }
 
-    public Auditor getAuditor() throws Exception {
-        for (AutoRecoveryMain p : autoRecoveryProcesses.values()) {
-            Auditor a = p.getAuditor();
-            if (a != null) {
-                return a;
+    public Auditor getAuditor(int timeout, TimeUnit unit) throws Exception {
+        final long timeoutAt = System.nanoTime() + TimeUnit.NANOSECONDS.convert(timeout, unit);
+        while (System.nanoTime() < timeoutAt) {
+            for (AutoRecoveryMain p : autoRecoveryProcesses.values()) {
+                Auditor a = p.getAuditor();
+                if (a != null) {
+                    return a;
+                }
             }
+            Thread.sleep(100);
         }
         throw new Exception("No auditor found");
     }