Björn Häuser created SOLR-11208:
-----------------------------------
Summary: Usage SynchronousQueue in Executors prevent large scale
operations
Key: SOLR-11208
URL: https://issues.apache.org/jira/browse/SOLR-11208
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Affects Versions: 6.6
Reporter: Björn Häuser
I am not sure where to start with this one.
I tried to post this already on the mailing list:
https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201708.mbox/%[email protected]%3e
In short: the usage of a SynchronousQueue as the workQeue prevents more tasks
than max threads.
For example, taken from OverseerCollectionMessageHandler:
{code:java}
ExecutorService tpe = new ExecutorUtil.MDCAwareThreadPoolExecutor(5, 10, 0L,
TimeUnit.MILLISECONDS,
new SynchronousQueue<>(),
new
DefaultSolrThreadFactory("OverseerCollectionMessageHandlerThreadFactory"));
{code}
This Executor is used when doing a REPLACENODE (= ADDREPLICA) command. When the
node has more than 10 collections this will fail with the mentioned
java.util.concurrent.RejectedExecutionException.
I am also not sure how to fix this. Just replacing the queue with a different
implementation feels wrong to me or could cause unwanted side behaviour.
Thanks
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]