lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Björn Häuser (JIRA) <>
Subject [jira] [Created] (SOLR-11208) Usage SynchronousQueue in Executors prevent large scale operations
Date Mon, 07 Aug 2017 19:03:00 GMT
Björn Häuser created SOLR-11208:

             Summary: Usage SynchronousQueue in Executors prevent large scale operations
                 Key: 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:

In short: the usage of a SynchronousQueue as the workQeue prevents more tasks than max threads.

For example, taken from OverseerCollectionMessageHandler:

  ExecutorService tpe = new ExecutorUtil.MDCAwareThreadPoolExecutor(5, 10, 0L, TimeUnit.MILLISECONDS,
      new SynchronousQueue<>(),
      new DefaultSolrThreadFactory("OverseerCollectionMessageHandlerThreadFactory"));

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.


This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message