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

Karl Wright commented on SOLR-4328:
-----------------------------------

The Solr connector in the ManifoldCF project worked around this problem for the 
moment by doing two things:

(1) Detecting the broken pipe error and interpreting that as meaning that a 
fixed number of retries are required;
(2) Turning on stale connection checks in HttpClient.

This is workable but not ideal.  The fact that Solr forcibly closes connections 
means that connection pooling on the client side is essentially a futile 
effort, and thus there are significant performance losses going to be 
associated with this behavior.  It is therefore in everyone's interest, I 
believe, to get Solr to stop doing what it is doing.

If I get any time this weekend I will try and propose a patch.

                
> Simultaneous multiple connections to Solr example often fail with various 
> IOExceptions
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-4328
>                 URL: https://issues.apache.org/jira/browse/SOLR-4328
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 4.0, 3.6.2
>         Environment: ManifoldCF, Solr connector, SolrJ, and Solr 4.0 or 3.6 
> on Mac OSX or Ubuntu, all localhost connections
>            Reporter: Karl Wright
>
> In ManifoldCF, we've been seeing problems with SolrJ connections throwing 
> java.net.SocketException's.  See CONNECTORS-616 for details as to exactly 
> what varieties of this exception are thrown, but "broken pipe" is the most 
> common.  This occurs on multiple Unix variants as stated.  (We also 
> occasionally see exceptions on Windows, but they are much less frequent and 
> are different variants than on Unix.)
> The exceptions seem to occur during the time an initial connection is getting 
> established, and seems to occur randomly when multiple connections are 
> getting established all at the same time.  Wire logging shows that only the 
> first few headers are sent before the connection is broken.  Solr itself does 
> log any error.  A retry is usually sufficient to have the transaction succeed.
> The Solr Connector in ManifoldCF has recently been upgraded to rely on SolrJ, 
> which could be a complicating factor.  However, I have repeatedly audited 
> both the Solr Connection code and the SolrJ code for best practices, and 
> while I found a couple of problems, nothing seems to be of the sort that 
> could cause a broken pipe.  For that to happen, the socket must be closed 
> either on the client end or on the server end, and there appears to be no 
> mechanism for that happening on the client end, since multiple threads would 
> have to be working with the same socket for that to be a possibility.
> It is also true that in ManifoldCF we disable the automatic retries that are 
> normally enabled for HttpComponents HttpClient.  These automatic retries 
> likely mask this problem should it be occurring in other situations.
> Places where there could potentially be a bug, in order of likelihood:
> (1) Jetty.  Nobody I am aware of has seen this on Tomcat yet.  But I also 
> don't know if anyone has tried it.
> (2) Solr servlet.  If it is possible for a servlet implementation to cause 
> the connection to drop without any exception being generated, this would be 
> something that should be researched.
> (3) HttpComponents/HttpClient.  If there is a client-side issue, it would 
> have to be because an httpclient instance was closing sockets from other 
> instances.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to