[
https://issues.apache.org/jira/browse/SOLR-1711?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Yonik Seeley updated SOLR-1711:
-------------------------------
Attachment: SOLR-1711.patch
Here's a patch that uses offer instead of put in a retry loop.
> Race condition in
> org/apache/solr/client/solrj/impl/StreamingUpdateSolrServer.java
> ----------------------------------------------------------------------------------
>
> Key: SOLR-1711
> URL: https://issues.apache.org/jira/browse/SOLR-1711
> Project: Solr
> Issue Type: Bug
> Components: clients - java
> Affects Versions: 1.4, 1.5
> Reporter: Attila Babo
> Assignee: Yonik Seeley
> Priority: Critical
> Fix For: 1.4.1, 1.5, 3.1, 4.0
>
> Attachments: SOLR-1711.patch, StreamingUpdateSolrServer.patch
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> While inserting a large pile of documents using StreamingUpdateSolrServer
> there is a race condition as all Runner instances stop processing while the
> blocking queue is full. With a high performance client this could happen
> quite often, there is no way to recover from it at the client side.
> In StreamingUpdateSolrServer there is a BlockingQueue called queue to store
> UpdateRequests, there are up to threadCount number of workers threads from
> StreamingUpdateSolrServer.Runner to read that queue and push requests to a
> Solr instance. If at one point the BlockingQueue is empty all workers stop
> processing it and pushing the collected content to Solr which could be a time
> consuming process, sometimes all worker threads are waiting for Solr. If at
> this time the client fills the BlockingQueue to full all worker threads will
> quit without processing any further and the main thread will block forever.
> There is a simple, well tested patch attached to handle this situation.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]