[
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: [email protected]
For additional commands, e-mail: [email protected]