[
https://issues.apache.org/jira/browse/SOLR-5719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Miller updated SOLR-5719:
------------------------------
Fix Version/s: 4.7
5.0
> 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
> Fix For: 5.0, 4.7
>
>
> 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]