Answered your question here: https://issues.apache.org/jira/browse/SOLR-16622
On Tue, Jan 17, 2023 at 7:57 PM Kevin Risden <[email protected]> wrote: > > Why was this pushed directly to the release branch with no additional tests? > > Why is this ONLY pushed to branch_9_1 and not main or branch_9x first? > > https://issues.apache.org/jira/browse/SOLR-16414 was pushed to main and > branch_9x. > > Kevin Risden > > > On Tue, Jan 17, 2023 at 7:42 AM <[email protected]> wrote: > > > This is an automated email from the ASF dual-hosted git repository. > > > > ishan pushed a commit to branch branch_9_1 > > in repository https://gitbox.apache.org/repos/asf/solr.git > > > > > > The following commit(s) were added to refs/heads/branch_9_1 by this push: > > new deb9e243995 SOLR-16622, SOLR-16414: simplified code / bugfix for > > a node restart not working correctly > > deb9e243995 is described below > > > > commit deb9e2439957dd42c349fc7fe2529d9fb63bd54d > > Author: Ishan Chattopadhyaya <[email protected]> > > AuthorDate: Tue Jan 17 18:10:01 2023 +0530 > > > > SOLR-16622, SOLR-16414: simplified code / bugfix for a node restart > > not working correctly > > --- > > .../java/org/apache/solr/cloud/ZkController.java | 50 > > ++++++++-------------- > > 1 file changed, 19 insertions(+), 31 deletions(-) > > > > diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java > > b/solr/core/src/java/org/apache/solr/cloud/ZkController.java > > index 6d20f57a42a..696ea7c900e 100644 > > --- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java > > +++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java > > @@ -2937,40 +2937,28 @@ public class ZkController implements Closeable { > > } else { > > try { > > // Create a concurrently accessible set to avoid repeating > > collections > > - Set<String> collectionsInThisNode = new HashSet<>(); > > + Set<String> processedCollections = new HashSet<>(); > > for (CoreDescriptor cd : cc.getCoreDescriptors()) { > > - if (cd.getCloudDescriptor() != null > > - && cd.getCloudDescriptor().getCollectionName() != null) { > > - > > collectionsInThisNode.add(cd.getCloudDescriptor().getCollectionName()); > > + String collName = cd.getCollectionName(); > > + DocCollection coll; > > + if (collName != null > > + && processedCollections.add(collName) > > + && (coll = zkStateReader.getCollection(collName)) != null > > + && coll.isPerReplicaState()) { > > + final List<String> replicasToDown = new ArrayList<>(); > > + coll.forEachReplica( > > + (s, replica) -> { > > + if (replica.getNodeName().equals(nodeName)) { > > + replicasToDown.add(replica.getName()); > > + } > > + }); > > + PerReplicaStatesOps.downReplicas( > > + replicasToDown, > > + PerReplicaStatesFetcher.fetch( > > + coll.getZNode(), zkClient, > > coll.getPerReplicaStates())) > > + .persist(coll.getZNode(), zkClient); > > } > > } > > - collectionsInThisNode.forEach( > > - c -> { > > - final List<String> replicasToDown = new ArrayList<>(); > > - DocCollection coll = zkStateReader.getCollection(c); > > - if (coll == null) { > > - // may be the collection no more exists > > - return; > > - } > > - coll.forEachReplica( > > - (s, r) -> { > > - if (r.getNodeName().equals(nodeName)) { > > - replicasToDown.add(r.getName()); > > - } > > - }); > > - > > - if (!replicasToDown.isEmpty()) { > > - try { > > - PerReplicaStatesOps.downReplicas( > > - replicasToDown, > > - PerReplicaStatesFetcher.fetch( > > - coll.getZNode(), zkClient, > > coll.getPerReplicaStates())) > > - .persist(coll.getZNode(), zkClient); > > - } catch (KeeperException | InterruptedException e) { > > - throw new RuntimeException(e); > > - } > > - } > > - }); > > > > // We always send a down node event to overseer to be safe, but > > overseer will not need to do > > // anything for PRS collections > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
