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/%3c48c49426-33a2-4d79-ae26-a4515b8f8...@gmail.com%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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org