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

Christine Poerschke commented on SOLR-15983:
--------------------------------------------

interpretation:
 * the update processor can be called from multiple threads
 * the {{toLog}} is a {{NamedList}} and concurrent access leads to corruption 
which manifests in {{NamedList.toString}}

history:
 * SOLR-2804 and SOLR-3314 describe something similar in DIH code (but this 
here is not data import related)

solution ideas code link:
 * 
[https://github.com/apache/lucene-solr/blob/releases/lucene-solr/8.11.1/solr/core/src/java/org/apache/solr/update/processor/LogUpdateProcessorFactory.java#L73]

solution ideas:
 * keep {{toLog}} as a {{NamedList}} but make use of it thread-safe
 * replace {{NamedList}} with something else e.g. {{ConcurrentHashMap}}
 * something else

> ClassCastException in UpdateLog$LogReplayer.doReplay
> ----------------------------------------------------
>
>                 Key: SOLR-15983
>                 URL: https://issues.apache.org/jira/browse/SOLR-15983
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Christine Poerschke
>            Assignee: Christine Poerschke
>            Priority: Major
>
> stacktrace:
> {code}
> ... ERROR ... o.a.s.u.UpdateLog java.lang.ClassCastException: 
> java.util.ArrayList cannot be cast to java.lang.String
>       at org.apache.solr.common.util.NamedList.getName(NamedList.java:175)
>       at org.apache.solr.common.util.NamedList.toString(NamedList.java:397)
>       at java.lang.String.valueOf(String.java:2994)
>       at java.lang.StringBuilder.append(StringBuilder.java:131)
>       at 
> org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.getLogStringAndClearRspToLog(LogUpdateProcessorFactory.java:212)
>       at 
> org.apache.solr.update.processor.LogUpdateProcessorFactory$LogUpdateProcessor.finish(LogUpdateProcessorFactory.java:187)
>       at 
> org.apache.solr.update.UpdateLog$LogReplayer.doReplay(UpdateLog.java:1980)
>       at org.apache.solr.update.UpdateLog$LogReplayer.run(UpdateLog.java:1762)
>       at 
> org.apache.solr.update.UpdateLog.lambda$applyBufferedUpdates$5(UpdateLog.java:1703)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:209)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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

Reply via email to