You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2012/01/17 00:02:14 UTC

svn commit: r1232216 - in /lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud: ChaosMonkey.java ChaosMonkeyNothingIsSafeTest.java FullSolrCloudTest.java

Author: markrmiller
Date: Mon Jan 16 23:02:14 2012
New Revision: 1232216

URL: http://svn.apache.org/viewvc?rev=1232216&view=rev
Log:
tweak tests

Modified:
    lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java
    lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java
    lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java?rev=1232216&r1=1232215&r2=1232216&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java Mon Jan 16 23:02:14 2012
@@ -63,7 +63,7 @@ public class ChaosMonkey {
   private Map<String,List<SolrServer>> shardToClient;
   private boolean expireSessions;
   private boolean causeConnectionLoss;
-  private boolean killLeaders;
+  private boolean aggressivelyKillLeaders;
   private Map<String,SolrServer> shardToLeaderClient;
   private Map<String,CloudJettyRunner> shardToLeaderJetty;
   
@@ -99,7 +99,7 @@ public class ChaosMonkey {
   public void expireRandomSession() throws KeeperException, InterruptedException {
     String sliceName = getRandomSlice();
     
-    JettySolrRunner jetty = getRandomJetty(sliceName, killLeaders);
+    JettySolrRunner jetty = getRandomJetty(sliceName, aggressivelyKillLeaders);
     if (jetty != null) {
       expireSession(jetty);
       expires.incrementAndGet();
@@ -109,7 +109,7 @@ public class ChaosMonkey {
   public void randomConnectionLoss() throws KeeperException, InterruptedException {
     String sliceName = getRandomSlice();
     
-    JettySolrRunner jetty = getRandomJetty(sliceName, killLeaders);
+    JettySolrRunner jetty = getRandomJetty(sliceName, aggressivelyKillLeaders);
     if (jetty != null) {
       causeConnectionLoss(jetty);
       connloss.incrementAndGet();
@@ -208,7 +208,7 @@ public class ChaosMonkey {
   }
   
   public JettySolrRunner stopRandomShard(String slice) throws Exception {
-    JettySolrRunner jetty = getRandomJetty(slice, killLeaders);
+    JettySolrRunner jetty = getRandomJetty(slice, aggressivelyKillLeaders);
     if (jetty != null) {
       stopJetty(jetty);
     }
@@ -233,14 +233,14 @@ public class ChaosMonkey {
   }
   
   public JettySolrRunner killRandomShard(String slice) throws Exception {
-    JettySolrRunner jetty = getRandomJetty(slice, killLeaders);
+    JettySolrRunner jetty = getRandomJetty(slice, aggressivelyKillLeaders);
     if (jetty != null) {
       killJetty(jetty);
     }
     return jetty;
   }
   
-  public JettySolrRunner getRandomJetty(String slice, boolean killLeader) throws KeeperException, InterruptedException {
+  public JettySolrRunner getRandomJetty(String slice, boolean aggressivelyKillLeaders) throws KeeperException, InterruptedException {
     // get latest cloud state
     zkStateReader.updateCloudState(true);
     Slice theShards = zkStateReader.getCloudState().getSlices(collection)
@@ -291,7 +291,7 @@ public class ChaosMonkey {
     
     int chance = random.nextInt(10);
     JettySolrRunner jetty;
-    if (chance <= 8 && killLeader) {
+    if (chance <= 8 && aggressivelyKillLeaders) {
       // if killLeader, really aggressively go after leaders
       Collection<CloudJettyRunner> leaders = shardToLeaderJetty.values();
       List<CloudJettyRunner> leadersList = new ArrayList<CloudJettyRunner>(leaders.size());
@@ -308,10 +308,10 @@ public class ChaosMonkey {
       
       ZkNodeProps leader = zkStateReader.getLeaderProps(collection, slice);
       boolean isLeader = leader.get(ZkStateReader.NODE_NAME_PROP).equals(jetties.get(index).nodeName);
-      if (!killLeader && isLeader) {
+      if (!aggressivelyKillLeaders && isLeader) {
         // we don't kill leaders...
         return null;
-      }
+      } 
     }
  
     return jetty;
@@ -332,7 +332,7 @@ public class ChaosMonkey {
   // synchronously starts and stops shards randomly, unless there is only one
   // active shard up for a slice or if there is one active and others recovering
   public void startTheMonkey(boolean killLeaders) {
-    this.killLeaders = killLeaders;
+    this.aggressivelyKillLeaders = killLeaders;
     
     // TODO: when kill leaders is on, lets kill a higher percentage of leaders
     

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java?rev=1232216&r1=1232215&r2=1232216&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkeyNothingIsSafeTest.java Mon Jan 16 23:02:14 2012
@@ -98,7 +98,7 @@ public class ChaosMonkeyNothingIsSafeTes
     
     chaosMonkey.startTheMonkey(true);
     
-    Thread.sleep(atLeast(10000));
+    Thread.sleep(atLeast(20000));
     
     chaosMonkey.stopTheMonkey();
     
@@ -129,10 +129,16 @@ public class ChaosMonkeyNothingIsSafeTes
 
     commit();
     
+    // TODO: assert we didnt kill everyone
+    
+    zkStateReader.updateCloudState(true);
+    assertTrue(zkStateReader.getCloudState().getLiveNodes().size() > 0);
+    
     checkShardConsistency(false, true);
     
     // ensure we have added more than 0 docs
     long cloudClientDocs = cloudClient.query(new SolrQuery("*:*")).getResults().getNumFound();
+    System.out.println("clouddocs:" + cloudClientDocs);
     assertTrue(cloudClientDocs > 0);
     
     if (VERBOSE) System.out.println("control docs:" + controlClient.query(new SolrQuery("*:*")).getResults().getNumFound() + "\n\n");
@@ -185,9 +191,10 @@ public class ChaosMonkeyNothingIsSafeTes
     
     public FullThrottleStopableIndexingThread(List<SolrServer> clients, int startI, boolean doDeletes) throws MalformedURLException {
       super(startI, doDeletes);
+      setName("FullThrottleStopableIndexingThread");
       setDaemon(true);
       this.clients = clients;
-      suss = new StreamingUpdateSolrServer(((CommonsHttpSolrServer) clients.get(0)).getBaseURL(), 10, 1);
+      suss = new StreamingUpdateSolrServer(((CommonsHttpSolrServer) clients.get(0)).getBaseURL(), 2, 2);
     }
     
     @Override
@@ -247,7 +254,7 @@ public class ChaosMonkeyNothingIsSafeTes
           clientIndex = 0;
         }
         try {
-          suss.shutdown();
+          suss.shutdownNow();
           suss = new StreamingUpdateSolrServer(((CommonsHttpSolrServer) clients.get(clientIndex)).getBaseURL(), 30, 3);
         } catch (MalformedURLException e1) {
           e1.printStackTrace();

Modified: lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java?rev=1232216&r1=1232215&r2=1232216&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/FullSolrCloudTest.java Mon Jan 16 23:02:14 2012
@@ -1036,6 +1036,7 @@ public class FullSolrCloudTest extends A
     protected boolean doDeletes;  
     
     public StopableIndexingThread(int startI, boolean doDeletes) {
+      super("StopableIndexingThread");
       this.startI = startI;
       this.doDeletes = doDeletes;
       setDaemon(true);