Description
LuceneIndexProviderService currently configures a thread pool like below
ThreadPoolExecutor executor = new ThreadPoolExecutor( 0, //corePoolSize 5, //maxPoolSize 60L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), //Unbounded queue new ThreadFactory() {
If there are more than corePoolSize but less than maximumPoolSize threads running, a new thread will be created only if the queue is full
Due to this currently the thread pool created by oak-lucene would only have 1 thread to handle all task as the queue is unbounded one. And if for some reason this thread gets stuck (due to some lock) then it would prevent other task in pool from further processing.
Attachments
Issue Links
- supercedes
-
OAK-6619 Async indexer thread may get stuck in CopyOnWriteDirectory close method
- Open