You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Chao Sun (JIRA)" <ji...@apache.org> on 2017/04/05 21:19:41 UTC
[jira] [Updated] (HIVE-16385) StatsNoJobTask could exit early
before all partitions have been processed
[ https://issues.apache.org/jira/browse/HIVE-16385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chao Sun updated HIVE-16385:
----------------------------
Status: Patch Available (was: Open)
> 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
> Attachments: HIVE-16385.1.patch
>
>
> 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)