[
https://issues.apache.org/jira/browse/HDFS-7922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14387346#comment-14387346
]
Colin Patrick McCabe commented on HDFS-7922:
--------------------------------------------
Thanks for looking at this, [~rakeshr].
* You do not need to check the executors against null, since they are final
members which are initialized when the object is constructed. They cannot be
null.
* I would put the calls to shutdown together before the calls to
{{awaitTermination}}.
* It looks like there is an existing bug where we try to join the CacheCleaner
thread (which may require a lock to finish) while holding the lock ourselves.
The fix is the same... we should join the cache cleaner thread once releasing
the lock.
* I don't see the need for a separate cleanup and close function. cleanup is
only ever called by close and it does the same thing.
> 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,
> 003-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)