[ 
https://issues.apache.org/jira/browse/HDFS-7922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14382395#comment-14382395
 ] 

Colin Patrick McCabe commented on HDFS-7922:
--------------------------------------------

We need to do {{shutdown}} and {{awaitTermination}} after releasing the lock.   
There isn't any reason to hold the lock when doing these and if one of the 
executors is about to take the lock right before close does it, it would lead 
to deadlock and timeout.

> ShortCircuitCache#close is not releasing ScheduledThreadPoolExecutors
> ---------------------------------------------------------------------
>
>                 Key: HDFS-7922
>                 URL: https://issues.apache.org/jira/browse/HDFS-7922
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: Rakesh R
>            Assignee: Rakesh R
>         Attachments: 001-HDFS-7922.patch, 002-HDFS-7922.patch
>
>
> ShortCircuitCache has the following executors. It would be good to shutdown 
> these pools during ShortCircuitCache#close to avoid leaks.
> {code}
>   /**
>    * The executor service that runs the cacheCleaner.
>    */
>   private final ScheduledThreadPoolExecutor cleanerExecutor
>   = new ScheduledThreadPoolExecutor(1, new ThreadFactoryBuilder().
>           setDaemon(true).setNameFormat("ShortCircuitCache_Cleaner").
>           build());
>   /**
>    * The executor service that runs the cacheCleaner.
>    */
>   private final ScheduledThreadPoolExecutor releaserExecutor
>       = new ScheduledThreadPoolExecutor(1, new ThreadFactoryBuilder().
>           setDaemon(true).setNameFormat("ShortCircuitCache_SlotReleaser").
>           build());
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to