[ 
https://issues.apache.org/jira/browse/SOLR-6724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14352193#comment-14352193
 ] 

Mark Miller commented on SOLR-6724:
-----------------------------------

Some notes on this:

* The client has to make a decision about what to do when a request is full 
sent and there is no response (at least in SolrCloud world - non cloud mode 
doesn't make a lot of promises anyway, though similar issues exist with 
multiple uncoordinated clients). The system can't decide for the client unless 
we are okay with getting things wrong sometimes. Anyone trying to write a good 
distributed system is not okay with that.

* The best thing we can do is lower the possibility of these no response 
issues. It's mostly related to connection pooling and httpclient and jetty and 
http. The best thing we can do is work on improving those issues. I've worked a 
lot on that in SOLR-4509. In the end, I spun a lot of improvements out of that 
issue and just left doing something better than a stale check. Unfortunately, 
in our tests, NoHttpResponseException almost appeared to randomly pop up more 
and so I dont have a lot of trust in it yet. I have not looked at things since 
we moved 6x to Jetty 9.

* In our tests this pops up fairly frequently. In production, in the real 
world, in my experience, this is ultra rare. A good client will always have to 
think about and deal with a fully sent update that gets no response though. 
It's just part of the game. It's not a great idea for our client code to guess 
the right solution though. If it get's it wrong, you have data loss issues. 
Also, our client code plays a dual role - it's client code the user takes 
advantage of, and it's also used for system internode communication.

> HttpServer maxRetries attributes seems like not being used as expected
> ----------------------------------------------------------------------
>
>                 Key: SOLR-6724
>                 URL: https://issues.apache.org/jira/browse/SOLR-6724
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java
>    Affects Versions: 4.10.2
>         Environment: OS X 10.9.5
> Java 1.7.0_60
>            Reporter: Márcio Furlani Carmona
>            Priority: Minor
>         Attachments: SOLR-6724.patch
>
>
> Looks like maxRetries is being misused in the 
> org.apache.solr.client.solrj.impl.HttpSolrServer.createMethod(SolrRequest) 
> instead of being used in the executeMethod(HttpRequestBase,ResponseParser).
> In the current implementation the maxRetries is used in a loop that only 
> instantiates the HttpRequestBase but it doesn't effectively make any HTTP 
> request. Also the retries are made even in a successful instantiation  of the 
> HttpRequestBase as there's no break too.
> I notice there's also a catch for NoHttpResponseException but as no HTTP 
> request is made I guess it will never happen.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to