hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pengcheng Xiong (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HIVE-16385) StatsNoJobTask could exit early before all partitions have been processed
Date Thu, 20 Apr 2017 18:44:04 GMT

     [ https://issues.apache.org/jira/browse/HIVE-16385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Pengcheng Xiong updated HIVE-16385:
-----------------------------------
    Affects Version/s: 2.0.0
                       2.1.0

> 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
>    Affects Versions: 2.0.0, 2.1.0
>            Reporter: Chao Sun
>            Assignee: Chao Sun
>             Fix For: 2.3.0, 3.0.0
>
>         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)

Mime
View raw message