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/08/11 01:24:30 UTC

[lucene-solr] 02/02: @489 Fix remove replica & test.

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

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

commit b1d9411a10e4f22cc978cf7be0515fc491f34d33
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Aug 10 20:20:51 2020 -0500

    @489 Fix remove replica & test.
---
 .../apache/solr/cloud/overseer/ZkStateWriter.java  | 10 ----------
 .../solr/cloud/DeleteInactiveReplicaTest.java      | 22 ++++++++++++++++------
 2 files changed, 16 insertions(+), 16 deletions(-)

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 e167031..f9fd2c2 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
@@ -232,7 +232,6 @@ public class ZkStateWriter {
 
             DocCollection finalC = c;
             prevState.getCollection(c.getName()).getSlicesMap().forEach((sliceId, slice) -> {
-              Collection<Replica> replicas = slice.getReplicas();
 
               Map<String, Replica> newReplicas = new HashMap<>();
 
@@ -240,15 +239,6 @@ public class ZkStateWriter {
 
               newProps.putAll(slice.getProperties());
 
-              Slice existingSlice = newSliceMap.get(sliceId);
-              if (existingSlice != null) {
-                existingSlice.getReplicas().forEach((replica) -> {
-                  newReplicas.put(replica.getName(), replica);
-                });
-              }
-
-              replicas.forEach((replica) -> newReplicas.put(replica.getName(), replica));
-
               finalC.getSlice(sliceId).getReplicas().forEach((replica) -> {
                 newReplicas.put(replica.getName(), replica);
               });
diff --git a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
index 8c98791..5fe963d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/DeleteInactiveReplicaTest.java
@@ -69,10 +69,7 @@ public class DeleteInactiveReplicaTest extends SolrCloudTestCase {
     Slice shard = getRandomShard(collectionState);
     Replica replica = getRandomReplica(shard);
     JettySolrRunner jetty = cluster.getReplicaJetty(replica);
-    CoreDescriptor replicaCd;
-    try (SolrCore core = jetty.getCoreContainer().getCore(replica.getCoreName())) {
-      replicaCd = core.getCoreDescriptor();
-    }
+
     cluster.stopJettySolrRunner(jetty);
 
     waitForState("Expected replica " + replica.getName() + " on down node to be removed from cluster state", collectionName, (n, c) -> {
@@ -80,13 +77,26 @@ public class DeleteInactiveReplicaTest extends SolrCloudTestCase {
       return r == null || r.getState() != Replica.State.ACTIVE;
     });
 
+    cluster.getSolrClient().getZkStateReader().waitForState(collectionName, 10, TimeUnit.SECONDS, (n,c)->{
+      if (c == null) return false;
+      Replica rep = c.getReplica(replica.getName());
+      if (rep == null) return true;
+      if (rep.getState() != Replica.State.ACTIVE) {
+        return true;
+      }
+      return false;
+    });
+
     if (log.isInfoEnabled()) {
       log.info("Removing replica {}/{} ", shard.getName(), replica.getName());
     }
     CollectionAdminRequest.deleteReplica(collectionName, shard.getName(), replica.getName())
         .process(cluster.getSolrClient());
-    waitForState("Expected deleted replica " + replica.getName() + " to be removed from cluster state", collectionName, (n, c) -> {
-      return c.getReplica(replica.getCoreName()) == null;
+
+    cluster.getSolrClient().getZkStateReader().waitForState(collectionName, 10, TimeUnit.SECONDS, (n,c)->{
+      if (c == null) return false;
+      if (c.getReplica(replica.getName()) == null) return true;
+      return false;
     });
 
 //    cluster.startJettySolrRunner(jetty);