mirror of https://github.com/apache/lucene.git
SOLR-8300: Use constants for the /overseer_elect znode
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1714841 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
ea917093f8
commit
dd8b980036
|
@ -527,6 +527,8 @@ Other Changes
|
|||
|
||||
* SOLR-8290: remove SchemaField.checkFieldCacheSource's unused QParser argument (Christine Poerschke)
|
||||
|
||||
* SOLR-8300: Use constants for the /overseer_elect znode (Varun Thacker)
|
||||
|
||||
================== 5.3.1 ==================
|
||||
|
||||
Bug Fixes
|
||||
|
|
|
@ -652,14 +652,14 @@ final class OverseerElectionContext extends ElectionContext {
|
|||
private static Logger log = LoggerFactory.getLogger(OverseerElectionContext.class);
|
||||
private final SolrZkClient zkClient;
|
||||
private Overseer overseer;
|
||||
public static final String PATH = "/overseer_elect";
|
||||
public static final String OVERSEER_ELECT = "/overseer_elect";
|
||||
|
||||
public OverseerElectionContext(SolrZkClient zkClient, Overseer overseer, final String zkNodeName) {
|
||||
super(zkNodeName,PATH , PATH+"/leader", null, zkClient);
|
||||
super(zkNodeName, OVERSEER_ELECT, OVERSEER_ELECT + "/leader", null, zkClient);
|
||||
this.overseer = overseer;
|
||||
this.zkClient = zkClient;
|
||||
try {
|
||||
new ZkCmdExecutor(zkClient.getZkClientTimeout()).ensureExists("/overseer_elect", zkClient);
|
||||
new ZkCmdExecutor(zkClient.getZkClientTimeout()).ensureExists(OVERSEER_ELECT, zkClient);
|
||||
} catch (KeeperException e) {
|
||||
throw new SolrException(ErrorCode.SERVER_ERROR, e);
|
||||
} catch (InterruptedException e) {
|
||||
|
|
|
@ -298,8 +298,8 @@ public class Overseer implements Closeable {
|
|||
private void checkIfIamStillLeader() {
|
||||
if (zkController != null && zkController.getCoreContainer().isShutDown()) return;//shutting down no need to go further
|
||||
org.apache.zookeeper.data.Stat stat = new org.apache.zookeeper.data.Stat();
|
||||
String path = "/overseer_elect/leader";
|
||||
byte[] data = null;
|
||||
String path = OverseerElectionContext.OVERSEER_ELECT + "/leader";
|
||||
byte[] data;
|
||||
try {
|
||||
data = zkClient.getData(path, null, stat, true);
|
||||
} catch (Exception e) {
|
||||
|
@ -409,7 +409,7 @@ public class Overseer implements Closeable {
|
|||
boolean success = true;
|
||||
try {
|
||||
ZkNodeProps props = ZkNodeProps.load(zkClient.getData(
|
||||
"/overseer_elect/leader", null, null, true));
|
||||
OverseerElectionContext.OVERSEER_ELECT + "/leader", null, null, true));
|
||||
if (myId.equals(props.getStr("id"))) {
|
||||
return LeaderStatus.YES;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ public class OverseerNodePrioritizer {
|
|||
String ldr = OverseerTaskProcessor.getLeaderNode(zk);
|
||||
if(overseerDesignates.contains(ldr)) return;
|
||||
log.info("prioritizing overseer nodes at {} overseer designates are {}", overseerId, overseerDesignates);
|
||||
List<String> electionNodes = OverseerTaskProcessor.getSortedElectionNodes(zk, OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE);
|
||||
List<String> electionNodes = OverseerTaskProcessor.getSortedElectionNodes(zk, OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE);
|
||||
if(electionNodes.size()<2) return;
|
||||
log.info("sorted nodes {}", electionNodes);
|
||||
|
||||
|
|
|
@ -306,7 +306,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||
public static List<String> getSortedOverseerNodeNames(SolrZkClient zk) throws KeeperException, InterruptedException {
|
||||
List<String> children = null;
|
||||
try {
|
||||
children = zk.getChildren(OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE, null, true);
|
||||
children = zk.getChildren(OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE, null, true);
|
||||
} catch (Exception e) {
|
||||
log.warn("error ", e);
|
||||
return new ArrayList<>();
|
||||
|
@ -339,7 +339,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||
public static String getLeaderId(SolrZkClient zkClient) throws KeeperException,InterruptedException{
|
||||
byte[] data = null;
|
||||
try {
|
||||
data = zkClient.getData("/overseer_elect/leader", null, new Stat(), true);
|
||||
data = zkClient.getData(OverseerElectionContext.OVERSEER_ELECT + "/leader", null, new Stat(), true);
|
||||
} catch (KeeperException.NoNodeException e) {
|
||||
return null;
|
||||
}
|
||||
|
@ -353,7 +353,7 @@ public class OverseerTaskProcessor implements Runnable, Closeable {
|
|||
boolean success = true;
|
||||
try {
|
||||
ZkNodeProps props = ZkNodeProps.load(zkStateReader.getZkClient().getData(
|
||||
"/overseer_elect/leader", null, null, true));
|
||||
OverseerElectionContext.OVERSEER_ELECT + "/leader", null, null, true));
|
||||
if (myId.equals(props.getStr("id"))) {
|
||||
return LeaderStatus.YES;
|
||||
}
|
||||
|
|
|
@ -1890,7 +1890,7 @@ public final class ZkController {
|
|||
//however delete it . This is possible when the last attempt at deleting the election node failed.
|
||||
if (electionNode.startsWith(getNodeName())) {
|
||||
try {
|
||||
zkClient.delete(OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE + "/" + electionNode, -1, true);
|
||||
zkClient.delete(OverseerElectionContext.OVERSEER_ELECT + LeaderElector.ELECTION_NODE + "/" + electionNode, -1, true);
|
||||
} catch (NoNodeException e) {
|
||||
//no problem
|
||||
} catch (InterruptedException e) {
|
||||
|
|
|
@ -177,7 +177,7 @@ public class OverseerRolesTest extends AbstractFullDistribZkTestBase{
|
|||
log.info("leader node {}", leaderJetty.getBaseUrl());
|
||||
log.info ("current election Queue",
|
||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(client.getZkStateReader().getZkClient(),
|
||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
||||
"/overseer_elect/election"));
|
||||
ChaosMonkey.stop(leaderJetty);
|
||||
timeout = new TimeOut(10, TimeUnit.SECONDS);
|
||||
leaderchanged = false;
|
||||
|
|
|
@ -20,7 +20,6 @@ package org.apache.solr.cloud;
|
|||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.solr.client.solrj.request.CollectionAdminRequest;
|
||||
import org.apache.solr.common.cloud.SolrZkClient;
|
||||
import org.apache.solr.common.params.CollectionParams;
|
||||
import org.apache.zookeeper.KeeperException;
|
||||
import org.junit.Test;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -97,7 +96,7 @@ public class RollingRestartTest extends AbstractFullDistribZkTestBase {
|
|||
if (leader == null)
|
||||
log.error("NOOVERSEER election queue is :" +
|
||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
||||
"/overseer_elect/election"));
|
||||
fail("No overseer designate as leader found after restart #" + (i + 1) + ": " + leader);
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +107,7 @@ public class RollingRestartTest extends AbstractFullDistribZkTestBase {
|
|||
if (leader == null)
|
||||
log.error("NOOVERSEER election queue is :" +
|
||||
OverseerCollectionConfigSetProcessor.getSortedElectionNodes(cloudClient.getZkStateReader().getZkClient(),
|
||||
OverseerElectionContext.PATH + LeaderElector.ELECTION_NODE));
|
||||
"/overseer_elect/election"));
|
||||
fail("No overseer leader found after restart #" + (i + 1) + ": " + leader);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue