[ 
https://issues.apache.org/jira/browse/SOLR-3484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hoss Man resolved SOLR-3484.
----------------------------

    Resolution: Not A Problem

See comments in SOLR-2694, particularly "Mikhail Khludnev added a comment - 
24/May/12 07:15" (the author of hte patch in question) in direct response to 
comment from creator of this issue.

All of the UpdateProcessor Factories are thread safe -- but *NONE* of the 
UpdateRequestProcessor classes returned by those factories are thread safe.  
UpdateRequestProcessors are designed to be used in the context of a single Solr 
request (hence the reason you need a SolrQueryRequest/SolrQueryResponse to get 
an instance).  If code interacting with an UpdateRequestProcessor is 
multi-threaded, then _that_ client code needs to synchronize it's use of the 
UpdateRequestProcessor.

(This was the fundamental problem in SOLR-2804: multi-threaded DIH code was not 
using the UpdateRequestProcessor in a thread-safe manner).

Adding a "ConcurrentLogUpdateRequestProcessor" will not magically make it safe 
for multi-threaded code to call methods on an UpdateRequestProcessor chain -- 
because any of the other UpdateRequestProcessors in that chain are also likley 
to break from concurrent usage by multiple threads.

If you have custom code that uses UpdateRequestProcessors in a way that you 
believe is valid, and you still see a bug, then you need to provide a test case 
demonstrating your usage and the bug it produces -- based on comments posted 
here and in SOLR-2694 it seems like the usage being described is not valid, 
because it assumes any and all UpdateRequestProcessors are stateless and 
multi-thread-safe, which is not true.  trivial example: 
RunUpdateProcessorFactory maintains un-synchronized state about uncommited 
changes for dealing with the transaction log.
                
> LogUpdateProcessor throws ConcurrentModificationException under 
> multi-threading calls 
> --------------------------------------------------------------------------------------
>
>                 Key: SOLR-3484
>                 URL: https://issues.apache.org/jira/browse/SOLR-3484
>             Project: Solr
>          Issue Type: Bug
>          Components: update
>    Affects Versions: 4.0
>         Environment: linux
>            Reporter: Ethan Tao
>
> Using the LogUpdateProcessor in a singleton chain for concurrent processing 
> throws exception. The issue has been reported in SOLR-2694 (closed), and an 
> unoffical patch can be found in related bug-id SOLR-2804 patch dated 1/1/12.
> If the patch won't become official for LogUpdateProcessor, suggested to have 
> new class "ConcurrentLogUpdateProcessorFactory" to address the thread safe 
> issue.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
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]

Reply via email to