[
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]