You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Chao Sun (JIRA)" <ji...@apache.org> on 2017/04/05 18:07:41 UTC

[jira] [Created] (HIVE-16385) StatsNoJobTask could exit early before all partitions have been processed

Chao Sun created HIVE-16385:
-------------------------------

             Summary: StatsNoJobTask could exit early before all partitions have been processed
                 Key: HIVE-16385
                 URL: https://issues.apache.org/jira/browse/HIVE-16385
             Project: Hive
          Issue Type: Bug
          Components: Statistics
            Reporter: Chao Sun
            Assignee: Chao Sun


For a partitioned table, the class {{StatsNoJobTask}} is supposed to launch threads for all partitions and compute their stats. However, it could exit early after at most 100 seconds:

{code}
  private void shutdownAndAwaitTermination(ExecutorService threadPool) {

    // Disable new tasks from being submitted
    threadPool.shutdown();
    try {

      // Wait a while for existing tasks to terminate
      if (!threadPool.awaitTermination(100, TimeUnit.SECONDS)) {
        // Cancel currently executing tasks
        threadPool.shutdownNow();

        // Wait a while for tasks to respond to being cancelled
        if (!threadPool.awaitTermination(100, TimeUnit.SECONDS)) {
          LOG.debug("Stats collection thread pool did not terminate");
        }
      }
    } catch (InterruptedException ie) {

      // Cancel again if current thread also interrupted
      threadPool.shutdownNow();

      // Preserve interrupt status
      Thread.currentThread().interrupt();
    }
  }
{code}

The {{shutdown}} call does not wait for all submitted tasks to complete, and the {{awaitTermination}} call waits at most 100 seconds. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)