You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2009/04/17 10:57:54 UTC
svn commit: r765912 - in /lucene/solr/trunk/src:
solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
Author: shalin
Date: Fri Apr 17 08:57:53 2009
New Revision: 765912
URL: http://svn.apache.org/viewvc?rev=765912&view=rev
Log:
SOLR-844 followup -- Fix bug with incorrect alive count which makes LBHttpSolrServer assume that all servers are down even when one is running
Modified:
lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
lucene/solr/trunk/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
Modified: lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java?rev=765912&r1=765911&r2=765912&view=diff
==============================================================================
--- lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java (original)
+++ lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/impl/LBHttpSolrServer.java Fri Apr 17 08:57:53 2009
@@ -190,6 +190,7 @@
int count = counter.incrementAndGet();
int attempts = 0;
Exception ex;
+ int startSize = aliveServers.size();
while (true) {
int size = aliveServers.size();
if (size < 1) throw new SolrServerException("No live SolrServers available to handle this request");
@@ -216,7 +217,7 @@
throw new SolrServerException(e);
}
attempts++;
- if (attempts >= aliveServers.size())
+ if (attempts >= startSize)
throw new SolrServerException("No live SolrServers available to handle this request", ex);
}
}
Modified: lucene/solr/trunk/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java?rev=765912&r1=765911&r2=765912&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java (original)
+++ lucene/solr/trunk/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java Fri Apr 17 08:57:53 2009
@@ -18,6 +18,7 @@
package org.apache.solr.client.solrj;
import junit.framework.TestCase;
+import junit.framework.Assert;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -118,6 +119,28 @@
assertEquals(3, names.size());
}
+ public void testTwoServers() throws Exception {
+ LBHttpSolrServer lbHttpSolrServer = new LBHttpSolrServer(httpClient, solr[0].getUrl(), solr[1].getUrl());
+ lbHttpSolrServer.setAliveCheckInterval(1);
+ SolrQuery solrQuery = new SolrQuery("*:*");
+ Set<String> names = new HashSet<String>();
+ QueryResponse resp = null;
+ solr[0].jetty.stop();
+ solr[0].jetty = null;
+ resp = lbHttpSolrServer.query(solrQuery);
+ String name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr1", name);
+ resp = lbHttpSolrServer.query(solrQuery);
+ name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr1", name);
+ solr[1].jetty.stop();
+ solr[1].jetty = null;
+ solr[0].startJetty();
+ Thread.sleep(1200);
+ resp = lbHttpSolrServer.query(solrQuery);
+ name = resp.getResults().get(0).getFieldValue("name").toString();
+ Assert.assertEquals("solr0", name);
+ }
private class SolrInstance extends AbstractSolrTestCase {