You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/09/04 13:24:10 UTC

[lucene-solr] 04/04: @737 Fix the fix.

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

markrmiller pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git

commit 3d09ebccc94614e739ef777d853155850db1af66
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Fri Sep 4 08:17:34 2020 -0500

    @737 Fix the fix.
---
 .../src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java   | 9 +++++++++
 solr/test-framework/src/java/org/apache/solr/SolrTestCase.java   | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
index cf99221..6cfecb5 100644
--- a/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
+++ b/solr/core/src/java/org/apache/solr/cloud/overseer/ZkStateWriter.java
@@ -38,6 +38,7 @@ import javax.print.Doc;
 import java.lang.invoke.MethodHandles;
 import java.util.ArrayDeque;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Deque;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -178,6 +179,14 @@ public class ZkStateWriter {
             c.getSlicesMap().forEach((sliceId, slice) -> {
               if (finalColl.getSlice(sliceId) != null) {
                 Map<String,Replica> newReplicas = new HashMap<>();
+
+                // start with existing state unless it's a replica that has been removed
+                Collection<Replica> nReplicas = finalC.getSlice(sliceId).getReplicas();
+                for (Replica oReplica : slice.getReplicas()) {
+                  if (nReplicas.contains(oReplica)) {
+                    newReplicas.put(oReplica.getName(), oReplica);
+                  }
+                }
                 
                 finalC.getSlice(sliceId).getReplicas().forEach((replica) -> {
                   newReplicas.put(replica.getName(), replica);
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
index 00c8153..b91e73e 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCase.java
@@ -329,7 +329,7 @@ public class SolrTestCase extends LuceneTestCase {
       System.setProperty("solr.cloud.wait-for-updates-with-stale-state-pause", "0");
       System.setProperty("solr.cloud.starting-recovery-delay-milli-seconds", "500");
 
-      System.setProperty("solr.waitForState", "5"); // secs
+      System.setProperty("solr.waitForState", "10"); // secs
 
       System.setProperty("solr.default.collection_op_timeout", "10000");