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");
}