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();