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

Hoss Man commented on SOLR-2804:
--------------------------------

I've only skimmed the patch, but it seems like overkill for the bug as i 
understand it -- but maybe i'm just missing something...

*Has anyone actually seen this bug reproduce in any situation where they 
_weren't_ using DIH multithreaded mode?*

bq. It blocks all users who index in multiple threads whether via SolrJ or DIH

That should not be the case at all for SOlrJ users and people using DIH in 
single threaded mode -- every UpdateProcessorFactory (including the 
LogUpdateprocessorFactory) creates new UpdateProcessor instances for every 
update request -- so no concurrency protection should be required for multiple 
threads processing concurrent requests individually.  A simple NamedList to 
collect the results to be logged _for each request_ should be completely 
sufficient.

Based on the comments so far, it sounds like the bug is multiple threads in DIH 
attempting to update the same NamedList concurrently -- which is most certainly 
not safe for DIH to do (NamedList has never been, nor been documented to 
suggest it might be, thread safe)

Changing LogUpdateprocessorFactory to add concurrency boundaries to something 
that is already suppose to only be single thread access seems like it will only 
slow down all the use cases that are already doing the right thing and working 
fine -- let's fix the concurrency issue in the place where there is concurrency 
code: figure out when/why/where DIH is letting multiple threads manipulate the 
toLog NamedList and fix that.

                
> Logging error causes entire DIH process to fail
> -----------------------------------------------
>
>                 Key: SOLR-2804
>                 URL: https://issues.apache.org/jira/browse/SOLR-2804
>             Project: Solr
>          Issue Type: Bug
>          Components: contrib - DataImportHandler
>    Affects Versions: 4.0
>         Environment: java version "1.6.0_26"
> Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
> Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
> Model Name:   MacBook Pro
>   Model Identifier:   MacBookPro8,2
>   Processor Name:     Intel Core i7
>   Processor Speed:    2.2 GHz
>   Number of Processors:       1
>   Total Number of Cores:      4
>   L2 Cache (per Core):        256 KB
>   L3 Cache:   6 MB
>   Memory:     4 GB
> System Software Overview:
>   System Version:     Mac OS X 10.6.8 (10K549)
>   Kernel Version:     Darwin 10.8.0
>            Reporter: Pulkit Singhal
>              Labels: dih
>         Attachments: SOLR-2804-3x.patch, SOLR-2804.patch
>
>   Original Estimate: 48h
>  Remaining Estimate: 48h
>
> SEVERE: Full Import failed:java.lang.ClassCastException:
> java.util.ArrayList cannot be cast to java.lang.String
>        at org.apache.solr.common.util.NamedList.getName(NamedList.java:127)
>        at org.apache.solr.common.util.NamedList.toString(NamedList.java:263)
>        at java.lang.String.valueOf(String.java:2826)
>        at java.lang.StringBuilder.append(StringBuilder.java:115)
>        at 
> org.apache.solr.update.processor.LogUpdateProcessor.finish(LogUpdateProcessorFactory.java:188)
>        at 
> org.apache.solr.handler.dataimport.SolrWriter.close(SolrWriter.java:57)
>        at 
> org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:265)
>        at 
> org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:372)
>        at 
> org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:440)
>        at 
> org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:421)

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