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]

Reply via email to