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 2011/12/23 19:11:50 UTC

svn commit: r1222772 - in /lucene/dev/branches/solrcloud/solr/core/src: java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java java/org/apache/solr/servlet/SolrDispatchFilter.java test/org/apache/solr/cloud/ChaosMonkey.java

Author: markrmiller
Date: Fri Dec 23 18:11:49 2011
New Revision: 1222772

URL: http://svn.apache.org/viewvc?rev=1222772&view=rev
Log:
keep trying to tweak against failure...

Modified:
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
    lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
    lucene/dev/branches/solrcloud/solr/core/src/test/org/apache/solr/cloud/ChaosMonkey.java

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java?rev=1222772&r1=1222771&r2=1222772&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/client/solrj/embedded/JettySolrRunner.java Fri Dec 23 18:11:49 2011
@@ -145,6 +145,10 @@ public class JettySolrRunner {
   public boolean isRunning() {
     return server.isRunning();
   }
+  
+  public boolean isStopped() {
+    return server.isStopped();
+  }
 
   // ------------------------------------------------------------------------------------------------
   // ------------------------------------------------------------------------------------------------

Modified: lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java?rev=1222772&r1=1222771&r2=1222772&view=diff
==============================================================================
--- lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java (original)
+++ lucene/dev/branches/solrcloud/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java Fri Dec 23 18:11:49 2011
@@ -62,7 +62,7 @@ public class SolrDispatchFilter implemen
 {
   final Logger log = LoggerFactory.getLogger(SolrDispatchFilter.class);
 
-  protected CoreContainer cores;
+  protected volatile CoreContainer cores;
 
   protected String pathPrefix = null; // strip this from the beginning of a path
   protected String abortErrorMessage = null;
@@ -145,7 +145,13 @@ public class SolrDispatchFilter implemen
       ((HttpServletResponse)response).sendError( 500, abortErrorMessage );
       return;
     }
-
+    
+    if (this.cores == null) {
+      ((HttpServletResponse)response).sendError( 403, "Server is shutting down" );
+      return;
+    }
+    CoreContainer cores = this.cores;
+    
     if( request instanceof HttpServletRequest) {
       HttpServletRequest req = (HttpServletRequest)request;
       HttpServletResponse resp = (HttpServletResponse)response;

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=1222772&r1=1222771&r2=1222772&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 Fri Dec 23 18:11:49 2011
@@ -101,6 +101,10 @@ public class ChaosMonkey {
     }
 
     jetty.stop();
+    
+    if (!jetty.isStopped()) {
+      throw new RuntimeException("could not stop jetty");
+    }
   }
   
   public static void kill(JettySolrRunner jetty) throws Exception {
@@ -113,6 +117,10 @@ public class ChaosMonkey {
         sdf.destroy();
       }
     }
+    
+    if (!jetty.isStopped()) {
+      throw new RuntimeException("could not kill jetty");
+    }
   }
   
   public void stopShard(String slice) throws Exception {
@@ -248,12 +256,21 @@ public class ChaosMonkey {
              if (!deadPool.isEmpty()) {
                System.out.println("start jetty");
                JettySolrRunner jetty = deadPool.remove(random.nextInt(deadPool.size()));
+               if (jetty.isRunning()) {
+                 
+               }
                try {
                  jetty.start();
                } catch (BindException e) {
                  jetty.stop();
                  sleep(2000);
-                 jetty.start();
+                 try {
+                   jetty.start();
+                 } catch (BindException e2) {
+                   jetty.stop();
+                   sleep(5000);
+                   jetty.start();
+                 }
                }
                System.out.println("started on port:" + jetty.getLocalPort());
                starts.incrementAndGet();