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]

Reply via email to