SOLR-5476 handle nonode exception

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1559936 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Noble Paul 2014-01-21 08:20:57 +00:00
parent 1941777fdc
commit 172b0b5231
2 changed files with 9 additions and 12 deletions

View File

@ -307,7 +307,13 @@ public class OverseerCollectionProcessor implements Runnable, ClosableThread {
} }
public static String getLeaderNode(SolrZkClient zkClient) throws KeeperException, InterruptedException { public static String getLeaderNode(SolrZkClient zkClient) throws KeeperException, InterruptedException {
Map m = (Map) ZkStateReader.fromJSON(zkClient.getData("/overseer_elect/leader", null, new Stat(), true)); byte[] data = new byte[0];
try {
data = zkClient.getData("/overseer_elect/leader", null, new Stat(), true);
} catch (KeeperException.NoNodeException e) {
return null;
}
Map m = (Map) ZkStateReader.fromJSON(data);
String s = (String) m.get("id"); String s = (String) m.get("id");
// log.info("leader-id {}",s); // log.info("leader-id {}",s);
String nodeName = LeaderElector.getNodeName(s); String nodeName = LeaderElector.getNodeName(s);

View File

@ -99,7 +99,7 @@ public class OverseerRolesTest extends AbstractFullDistribZkTestBase{
ArrayList<String> l = new ArrayList<>(nodes); ArrayList<String> l = new ArrayList<>(nodes);
log.info("All nodes {}", l); log.info("All nodes {}", l);
String currentLeader = getLeaderNode(client); String currentLeader = OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient());
log.info("Current leader {} ", currentLeader); log.info("Current leader {} ", currentLeader);
l.remove(currentLeader); l.remove(currentLeader);
@ -112,7 +112,7 @@ public class OverseerRolesTest extends AbstractFullDistribZkTestBase{
boolean leaderchanged = false; boolean leaderchanged = false;
for(;System.currentTimeMillis() < timeout;){ for(;System.currentTimeMillis() < timeout;){
if(getLeaderNode(client).equals(overseerDesignate)){ if(overseerDesignate.equals(OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient()))){
log.info("overseer designate is the new overseer"); log.info("overseer designate is the new overseer");
leaderchanged =true; leaderchanged =true;
break; break;
@ -168,15 +168,6 @@ public class OverseerRolesTest extends AbstractFullDistribZkTestBase{
client.request(request); client.request(request);
} }
private String getLeaderNode(CloudSolrServer client) throws KeeperException, InterruptedException {
Map m = (Map) ZkStateReader.fromJSON(client.getZkStateReader().getZkClient().getData("/overseer_elect/leader", null, new Stat(), true));
String s = (String) m.get("id");
// log.info("leader-id {}",s);
String nodeName = LeaderElector.getNodeName(s);
// log.info("Leader {}", nodeName);
return nodeName;
}
protected void createCollection(String COLL_NAME, CloudSolrServer client) throws Exception { protected void createCollection(String COLL_NAME, CloudSolrServer client) throws Exception {
int replicationFactor = 2; int replicationFactor = 2;
int numShards = 4; int numShards = 4;