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