This is an automated email from the ASF dual-hosted git repository.

sijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new dcdd1e8  Small fix wrong nodesUninitialized count when checkCovered
dcdd1e8 is described below

commit dcdd1e887ef01f7515053f7eb06f8479de8700ff
Author: Huang,Dongfa <[email protected]>
AuthorDate: Mon Jan 21 16:54:59 2019 +0800

    Small fix wrong nodesUninitialized count when checkCovered
    
    
    Descriptions of the changes in this PR:
    
    ### Motivation
    
    Since count `nodesUninitialized` is always 0,
    there is no wait if we haven't seen any OK responses and there are still 
nodes not heard from
    
    ### Changes
    
    Correct  nodesUninitialized count and add a related testcase
    
    
    
    
    Reviewers: Enrico Olivelli <[email protected]>, Sijie Guo 
<[email protected]>
    
    This closes #1900 from huangdongfa/fix-error-nodesUninitialized
---
 .../bookkeeper/client/RoundRobinDistributionSchedule.java      |  5 +++--
 .../bookkeeper/client/RoundRobinDistributionScheduleTest.java  | 10 ++++++++++
 .../apache/bookkeeper/replication/BookieAutoRecoveryTest.java  |  2 +-
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java
index d079408..a6506af 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java
@@ -380,8 +380,9 @@ class RoundRobinDistributionSchedule implements 
DistributionSchedule {
                     } else if (covered[nodeIndex] != 
BKException.Code.NoSuchEntryException
                             && covered[nodeIndex] != 
BKException.Code.NoSuchLedgerExistsException) {
                         nodesNotCovered++;
-                    } else if (covered[nodeIndex] == 
BKException.Code.UNINITIALIZED) {
-                        nodesUninitialized++;
+                        if (covered[nodeIndex] == 
BKException.Code.UNINITIALIZED) {
+                            nodesUninitialized++;
+                        }
                     }
                 }
                 // if we haven't seen any OK responses and there are still 
nodes not heard from,
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
index b78f1ad..b78897a 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java
@@ -73,6 +73,16 @@ public class RoundRobinDistributionScheduleTest {
             }
         }
         assertEquals("Should be no errors", 0, errors);
+
+        RoundRobinDistributionSchedule schedule = new 
RoundRobinDistributionSchedule(
+            5, 3, 5);
+        DistributionSchedule.QuorumCoverageSet covSet = 
schedule.getCoverageSet();
+        covSet.addBookie(0, BKException.Code.NoSuchLedgerExistsException);
+        covSet.addBookie(1, BKException.Code.NoSuchEntryException);
+        covSet.addBookie(2, BKException.Code.NoSuchLedgerExistsException);
+        covSet.addBookie(3, BKException.Code.UNINITIALIZED);
+        covSet.addBookie(4, BKException.Code.UNINITIALIZED);
+        assertFalse(covSet.checkCovered());
     }
 
     /**
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
index 45cd2eb..0a6d264 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
@@ -390,7 +390,7 @@ public class BookieAutoRecoveryTest extends 
BookKeeperClusterTestCase {
         latch = new CountDownLatch(1);
         Stat s = watchUrLedgerNode(urZNode, latch); // should be marked as 
replicated
         if (s != null) {
-            assertTrue("Should be marked as replicated", latch.await(10, 
TimeUnit.SECONDS));
+            assertTrue("Should be marked as replicated", latch.await(15, 
TimeUnit.SECONDS));
         }
 
         replicaToKill = 
lh.getLedgerMetadata().getAllEnsembles().get(0L).get(1);

Reply via email to