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/11/11 00:48:18 UTC
[lucene-solr] 02/03: @1153 Fix up setting leader state.
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 ecb4bcf937df813200a140aed8e7bd5e19fa6586
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Nov 10 18:32:13 2020 -0600
@1153 Fix up setting leader state.
---
.../java/org/apache/solr/cloud/overseer/ZkStateWriter.java | 7 +++++--
.../src/java/org/apache/solr/common/cloud/ZkStateReader.java | 11 ++++-------
2 files changed, 9 insertions(+), 9 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 28c82ae..eeaecaf 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
@@ -142,6 +142,7 @@ public class ZkStateWriter {
currentSlice.setState(slice.getState());
currentSlice.setLeader(slice.getLeader());
currentSlice.getLeader().getProperties().put("leader", "true");
+ currentSlice.getLeader().getProperties().put("state", Replica.State.ACTIVE.toString());
changed.set(true);
}
}
@@ -151,8 +152,9 @@ public class ZkStateWriter {
if (log.isDebugEnabled()) log.debug("set replica state to {} isLeader={}", replica.getState(), replica.getProperty("leader"));
currentReplica.setState(replica.getState());
String leader = replica.getProperty("leader");
- if (leader != null) {
- currentReplica.getProperties().put("leader", leader);
+ if (leader != null || slice.getLeader() != null && replica.getName().equals(slice.getLeader().getName())) {
+ currentReplica.getProperties().put("leader", "true");
+ currentReplica.getProperties().put("state", Replica.State.ACTIVE.toString());
}
// nocommit
// else if (leader == null) {
@@ -161,6 +163,7 @@ public class ZkStateWriter {
if (slice.getLeader() != null && slice.getLeader().getName().equals(replica.getName())) {
currentReplica.getProperties().put("leader", "true");
+ currentReplica.getProperties().put("state", Replica.State.ACTIVE.toString());
}
Replica thereplica = cs.getCollectionOrNull(newCollection.getName()).getReplica(replica.getName());
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
index a00ce0a..2faa060 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
@@ -919,14 +919,11 @@ public class ZkStateReader implements SolrCloseable, Replica.NodeNameToBaseUrl {
return false;
Slice slice = c.getSlice(shard);
if (slice == null) return false;
- for (Replica replica : slice.getReplicas()) {
- String leader = replica.getProperty("leader");
- if (leader != null && leader.equals("true") && replica.getState() == Replica.State.ACTIVE) {
- returnLeader.set(replica);
- return true;
- }
+ Replica leader = slice.getLeader();
+ if (leader != null && leader.getState() == Replica.State.ACTIVE) {
+ returnLeader.set(leader);
+ return true;
}
-
return false;
});
} catch (TimeoutException e) {