You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2014/01/22 09:41:51 UTC
svn commit: r1560279 - in /lucene/dev/trunk/solr/core/src:
java/org/apache/solr/cloud/OverseerCollectionProcessor.java
test/org/apache/solr/cloud/OverseerRolesTest.java
Author: noble
Date: Wed Jan 22 08:41:50 2014
New Revision: 1560279
URL: http://svn.apache.org/r1560279
Log:
SOLR-5476 hardened a bit
Modified:
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java?rev=1560279&r1=1560278&r2=1560279&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java Wed Jan 22 08:41:50 2014
@@ -291,9 +291,12 @@ public class OverseerCollectionProcessor
return;
}
- if(!overseerDesignates.contains( getLeaderNode(zkStateReader.getZkClient())) && !availableDesignates.isEmpty()){
+ String leaderNode = getLeaderNode(zkStateReader.getZkClient());
+ if(leaderNode ==null) return;
+ if(!overseerDesignates.contains(leaderNode) && !availableDesignates.isEmpty()){
//this means there are designated Overseer nodes and I am not one of them , kill myself
- invokeRejoinOverseer(nodeNames.get(0));
+ log.info("I am not an overseerdesignate , rejoining election {} ", leaderNode);
+ invokeRejoinOverseer(leaderNode);
}
}
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java?rev=1560279&r1=1560278&r2=1560279&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/OverseerRolesTest.java Wed Jan 22 08:41:50 2014
@@ -44,6 +44,7 @@ import java.util.Set;
import static org.apache.solr.cloud.OverseerCollectionProcessor.MAX_SHARDS_PER_NODE;
import static org.apache.solr.cloud.OverseerCollectionProcessor.NUM_SLICES;
import static org.apache.solr.cloud.OverseerCollectionProcessor.REPLICATION_FACTOR;
+import static org.apache.solr.cloud.OverseerCollectionProcessor.getSortedNodeNames;
import static org.apache.solr.common.cloud.ZkNodeProps.makeMap;
import static org.apache.solr.common.params.CollectionParams.CollectionAction;
@@ -95,9 +96,8 @@ public class OverseerRolesTest extends
createCollection(collectionName, client);
waitForRecoveriesToFinish(collectionName, false);
- Set<String> nodes = client.getZkStateReader().getClusterState().getLiveNodes();
+ List<String> l = OverseerCollectionProcessor.getSortedNodeNames(client.getZkStateReader().getZkClient()) ;
- ArrayList<String> l = new ArrayList<>(nodes);
log.info("All nodes {}", l);
String currentLeader = OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient());
log.info("Current leader {} ", currentLeader);
@@ -108,7 +108,7 @@ public class OverseerRolesTest extends
log.info("overseerDesignate {}",overseerDesignate);
setOverseerRole(CollectionAction.ADDROLE,overseerDesignate);
- long timeout = System.currentTimeMillis()+10000;
+ long timeout = System.currentTimeMillis()+15000;
boolean leaderchanged = false;
for(;System.currentTimeMillis() < timeout;){
@@ -119,6 +119,11 @@ public class OverseerRolesTest extends
}
Thread.sleep(100);
}
+ if(!leaderchanged){
+ log.warn("expected {}, current order {}",
+ overseerDesignate,
+ getSortedNodeNames(client.getZkStateReader().getZkClient())+ " ldr :"+ OverseerCollectionProcessor.getLeaderNode(client.getZkStateReader().getZkClient()) );
+ }
assertTrue("could not set the new overseer",leaderchanged);
@@ -137,10 +142,7 @@ public class OverseerRolesTest extends
timeout = System.currentTimeMillis()+10000;
leaderchanged = false;
for(;System.currentTimeMillis() < timeout;){
-// log.info(" count {}", System.currentTimeMillis());
-
-//
- List<String> sortedNodeNames = OverseerCollectionProcessor.getSortedNodeNames(client.getZkStateReader().getZkClient());
+ List<String> sortedNodeNames = getSortedNodeNames(client.getZkStateReader().getZkClient());
if(sortedNodeNames.get(1) .equals(anotherOverseer) || sortedNodeNames.get(0).equals(anotherOverseer)){
leaderchanged =true;
break;
@@ -148,7 +150,7 @@ public class OverseerRolesTest extends
Thread.sleep(100);
}
- assertTrue("New overseer not the frontrunner : "+ OverseerCollectionProcessor.getSortedNodeNames(client.getZkStateReader().getZkClient()) + " expected : "+ anotherOverseer, leaderchanged);
+ assertTrue("New overseer not the frontrunner : "+ getSortedNodeNames(client.getZkStateReader().getZkClient()) + " expected : "+ anotherOverseer, leaderchanged);
client.shutdown();