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: [email protected]
For additional commands, e-mail: [email protected]