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 2014/01/03 18:12:43 UTC

svn commit: r1555158 - in /zookeeper/bookkeeper/trunk: ./ bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/ bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ bookkeeper-server/src/test/java/org/apache/bookkeeper/test/

Author: fpj
Date: Fri Jan  3 17:12:42 2014
New Revision: 1555158

URL: http://svn.apache.org/r1555158
Log:
BOOKKEEPER-709: SlowBookieTest#testSlowBookie fails intermittently (Rakesh R via fpj)


Modified:
    zookeeper/bookkeeper/trunk/CHANGES.txt
    zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
    zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
    zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java

Modified: zookeeper/bookkeeper/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/CHANGES.txt?rev=1555158&r1=1555157&r2=1555158&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/CHANGES.txt (original)
+++ zookeeper/bookkeeper/trunk/CHANGES.txt Fri Jan  3 17:12:42 2014
@@ -130,6 +130,8 @@ Trunk (unreleased changes)
 
         BOOKKEEPER-712: bookkeeper script should use 'java' from JAVA_HOME (vinay via sijie)
 
+	BOOKKEEPER-709: SlowBookieTest#testSlowBookie fails intermittently (Rakesh R via fpj)
+
       hedwig-server:
 
         BOOKKEEPER-601: readahead cache size isn't updated correctly (sijie via fpj)

Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java?rev=1555158&r1=1555157&r2=1555158&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java Fri Jan  3 17:12:42 2014
@@ -121,6 +121,7 @@ public class BookieServer {
      */
     @VisibleForTesting
     public void suspendProcessing() {
+        LOG.debug("Suspending bookie server, port is {}", conf.getBookiePort());
         nettyServer.suspendProcessing();
     }
 
@@ -129,6 +130,7 @@ public class BookieServer {
      */
     @VisibleForTesting
     public void resumeProcessing() {
+        LOG.debug("Resuming bookie server, port is {}", conf.getBookiePort());
         nettyServer.resumeProcessing();
     }
 

Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java?rev=1555158&r1=1555157&r2=1555158&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java Fri Jan  3 17:12:42 2014
@@ -25,13 +25,12 @@ import java.util.Set;
 import java.util.List;
 
 import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.net.InetSocketAddress;
 import org.junit.Test;
-import static org.junit.Assert.*;
 
-import junit.framework.TestCase;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -62,6 +61,7 @@ public class SlowBookieTest extends Book
         }
         final CountDownLatch b0latch = new CountDownLatch(1);
         final CountDownLatch b1latch = new CountDownLatch(1);
+        final CountDownLatch addEntrylatch = new CountDownLatch(1);
         List<InetSocketAddress> curEns = lh.getLedgerMetadata().currentEnsemble;
         try {
             sleepBookie(curEns.get(0), b0latch);
@@ -74,19 +74,21 @@ public class SlowBookieTest extends Book
             AsyncCallback.AddCallback cb = new AsyncCallback.AddCallback() {
                     public void addComplete(int rc, LedgerHandle lh, long entryId, Object ctx) {
                         i.set(rc);
+                        addEntrylatch.countDown();
                     }
                 };
             lh.asyncAddEntry(entry, cb, null);
 
-            Thread.sleep(1000); // sleep a second to allow time to complete
-            assertEquals(i.get(), 0xdeadbeef);
+            Thread.sleep(3000); // sleep 3 seconds to allow time to complete
+            assertEquals("Successfully added entry!", 0xdeadbeef, i.get());
             b0latch.countDown();
             b1latch.countDown();
-            Thread.sleep(2000);
-            assertEquals(i.get(), BKException.Code.OK);
+            addEntrylatch.await(4000, TimeUnit.MILLISECONDS);
+            assertEquals("Failed to add entry!", BKException.Code.OK, i.get());
         } finally {
             b0latch.countDown();
             b1latch.countDown();
+            addEntrylatch.countDown();
         }
     }
 
@@ -99,7 +101,6 @@ public class SlowBookieTest extends Book
 
         byte[] pwd = new byte[] {};
         final LedgerHandle lh = bkc.createLedger(4, 3, 2, BookKeeper.DigestType.CRC32, pwd);
-        long lid = lh.getId();
         final AtomicBoolean finished = new AtomicBoolean(false);
         final AtomicBoolean failTest = new AtomicBoolean(false);
         final byte[] entry = "Test Entry".getBytes();
@@ -154,7 +155,6 @@ public class SlowBookieTest extends Book
 
         byte[] pwd = new byte[] {};
         final LedgerHandle lh = bkc.createLedger(4, 3, 1, BookKeeper.DigestType.CRC32, pwd);
-        long lid = lh.getId();
         final AtomicBoolean finished = new AtomicBoolean(false);
         final AtomicBoolean failTest = new AtomicBoolean(false);
         final byte[] entry = "Test Entry".getBytes();

Modified: zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
URL: http://svn.apache.org/viewvc/zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java?rev=1555158&r1=1555157&r2=1555158&view=diff
==============================================================================
--- zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java (original)
+++ zookeeper/bookkeeper/trunk/bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java Fri Jan  3 17:12:42 2014
@@ -311,10 +311,10 @@ public abstract class BookKeeperClusterT
             throws Exception {
         for (final BookieServer bookie : bs) {
             if (bookie.getLocalAddress().equals(addr)) {
+                bookie.suspendProcessing();
                 Thread sleeper = new Thread() {
                     public void run() {
                         try {
-                            bookie.suspendProcessing();
                             l.await();
                             bookie.resumeProcessing();
                         } catch (Exception e) {