Github user bdeggleston commented on a diff in the pull request:

    https://github.com/apache/cassandra/pull/224#discussion_r194793501
  
    --- Diff: 
src/java/org/apache/cassandra/service/reads/AbstractReadExecutor.java ---
    @@ -269,24 +272,26 @@ public void executeAsync()
             {
                 // if CL + RR result in covering all replicas, getReadExecutor 
forces AlwaysSpeculating.  So we know
                 // that the last replica in our list is "extra."
    -            List<InetAddressAndPort> initialReplicas = 
targetReplicas.subList(0, targetReplicas.size() - 1);
    +            ReplicaList initialReplicas = targetReplicas.subList(0, 
targetReplicas.size() - 1);
    +
    +            Replicas.checkFull(initialReplicas);
     
                 if (handler.blockfor < initialReplicas.size())
                 {
                     // We're hitting additional targets for read repair.  
Since our "extra" replica is the least-
                     // preferred by the snitch, we do an extra data read to 
start with against a replica more
                     // likely to reply; better to let RR fail than the entire 
query.
    -                makeDataRequests(initialReplicas.subList(0, 2));
    +                makeDataRequests(initialReplicas.subList(0, 
2).asEndpoints());
                     if (initialReplicas.size() > 2)
    -                    makeDigestRequests(initialReplicas.subList(2, 
initialReplicas.size()));
    +                    makeDigestRequests(initialReplicas.subList(2, 
initialReplicas.size()).asEndpoints());
                 }
                 else
                 {
                     // not doing read repair; all replies are important, so it 
doesn't matter which nodes we
                     // perform data reads against vs digest.
    -                makeDataRequests(initialReplicas.subList(0, 1));
    +                makeDataRequests(initialReplicas.subList(0, 
1).asEndpoints());
                     if (initialReplicas.size() > 1)
    -                    makeDigestRequests(initialReplicas.subList(1, 
initialReplicas.size()));
    +                    makeDigestRequests(initialReplicas.subList(1, 
initialReplicas.size()).asEndpoints());
    --- End diff --
    
    fixed


---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to