You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Allan Baliberdin (JIRA)" <ji...@apache.org> on 2014/02/12 20:13:23 UTC

[jira] [Created] (SOLR-5719) CloudSolrServer 4.6.1 - CloudSolrServer instance on the client side put its threads on waiting mode when shard goes down, and never wake up them.

Allan Baliberdin created SOLR-5719:
--------------------------------------

             Summary: CloudSolrServer 4.6.1 -  CloudSolrServer instance on the client side put its threads on waiting mode when shard goes down, and never wake up them.
                 Key: SOLR-5719
                 URL: https://issues.apache.org/jira/browse/SOLR-5719
             Project: Solr
          Issue Type: Bug
          Components: clients - java
    Affects Versions: 4.6.1
         Environment: 2 ZooKepper Servers, 4 SolrServers, JDK 1.7 on Jetty CentOS 6.4
1 Core (collection1) with two shards which have 2 instances each one
            Reporter: Allan Baliberdin


CloudSolrServer instance on the client side put its threads on waiting mode when shard goes down, and never wake up them.

Teste code:

...
CloudSolrServer server = new CloudSolrServer("172.16.199.106:8080,172.16.198.198:8080",false);
		server.setDefaultCollection("collection1");

		for(int i=0; i< 10000; i++){
			SolrInputDocument doc = new SolrInputDocument();
			doc.addField("id", i);
			doc.addField("title", i+" - Document test");
			doc.addField("content", i+" - Test Content");
			server.add(doc);
		}
...

During this test we put the shard #1 down, just for check fault tolerance. And CloundSolrServer Logs:


Exception in thread "main" org.apache.solr.client.solrj.impl.CloudSolrServer$RouteException: No live SolrServers available to handle this request:[http://172.16.199.60:8080/solr/collection1, http://172.16.199.97:8080/solr/collection1]
	at org.apache.solr.client.solrj.impl.CloudSolrServer.directUpdate(CloudSolrServer.java:351)
	at org.apache.solr.client.solrj.impl.CloudSolrServer.request(CloudSolrServer.java:510)
	at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:117)
	at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:116)
	at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:102)
	at teste.SolrIndexer.main(SolrIndexer.java:44)
Caused by: org.apache.solr.client.solrj.SolrServerException: No live SolrServers available to handle this request:[http://172.16.199.60:8080/solr/collection1, http://172.16.199.97:8080/solr/collection1]
	at org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer.java:354)
	at org.apache.solr.client.solrj.impl.CloudSolrServer$1.call(CloudSolrServer.java:332)
	at org.apache.solr.client.solrj.impl.CloudSolrServer$1.call(CloudSolrServer.java:329)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)
Caused by: org.apache.solr.client.solrj.SolrServerException: Server refused connection at: http://172.16.199.97:8080/solr/collection1
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:500)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:199)
	at org.apache.solr.client.solrj.impl.LBHttpSolrServer.request(LBHttpSolrServer.java:285)
	... 7 more
Caused by: org.apache.http.conn.HttpHostConnectException: Connection to http://172.16.199.97:8080 refused
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:190)
	at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
	at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:643)
	at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:479)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
	at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
	at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:395)
	... 9 more
Caused by: java.net.ConnectException: Connection refused
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:579)
	at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:127)
	at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
	... 16 more

But not throw this exception through my main Thread, and lock loop.
After we starts up shard #1 CloudSolrServer (client side) could not return from failure.
Then my program never exit, and CloudSolrServer could not be reused.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org