Kevin Risden created SOLR-16187:
-----------------------------------
Summary: ExecutorUtil#awaitTermination shouldn't wait forever?
Key: SOLR-16187
URL: https://issues.apache.org/jira/browse/SOLR-16187
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Reporter: Kevin Risden
While looking at some of the other thread leak issues, found that
ExecutorUtil#awaitTermination is waiting basically forever:
https://github.com/apache/solr/blob/main/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java#L98
{code:java}
public static void awaitTermination(ExecutorService pool) {
boolean shutdown = false;
while (!shutdown) {
try {
// Wait a while for existing tasks to terminate
shutdown = pool.awaitTermination(60, TimeUnit.SECONDS);
} catch (InterruptedException ie) {
// Preserve interrupt status
Thread.currentThread().interrupt();
}
}
}
{code}
Instead it should be possible to wait and then if still not shutdown then
interrupt the threads? ie: pool.shutdownNow() then another awaitTermination to
at least limit the termination time to 2*60 seconds?
This would at least have some bound to shutting stuff down.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]