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);