[infinispan-issues] [JBoss JIRA] Updated: (ISPN-1388) Eviction scheduled executor never shutdown
Galder Zamarreño (JIRA)
jira-events at lists.jboss.org
Thu Sep 15 06:10:26 EDT 2011
[ https://issues.jboss.org/browse/ISPN-1388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Galder Zamarreño updated ISPN-1388:
-----------------------------------
Description:
At the end of the testsuite, there're about ~900 scheduled eviction threads lying around. Is the scheduled eviction executor thread service at all???
What's not very clear here is whose responsibility is to shutdown executor services. For example, take @ComponentName(ASYNC_TRANSPORT_EXECUTOR), this is injected into: CacheImpl, RpcManagerImpl, QueryInterceptor and JGroupsTransport. Who's supposed to shut it down? Right now, it's RpcManagerImpl doing it, which is a named cache component.
This opens another interesting question: Are ExecutorService components global, or per cache? Or both? For example, take ASYNC_TRANSPORT_EXECUTOR, it's injected to Transport, so must be global. But then you see RpcManagerImpl, which is a named cache component shutting it down? Surely that cannot be right.
Going back to the original concern, take KnownComponentNames.EVICTION_SCHEDULED_EXECUTOR which is used by EvictionManagerImpl, this is never shutdown by anyone, which matches what's seen in the thread dump.
was:
At the end of the testsuite, there're about ~900 scheduled eviction threads lying around. Is the scheduled eviction executor thread shutdown at all???
What's not very clear here is whose responsibility is to shutdown executor services. For example, take @ComponentName(ASYNC_TRANSPORT_EXECUTOR), this is injected into: CacheImpl, RpcManagerImpl, QueryInterceptor and JGroupsTransport. Who's supposed to shut it down? Right now, it's RpcManagerImpl doing it, which is a named cache component.
This opens another interesting question: Are ExecutorService components global, or per cache? Or both? For example, take ASYNC_TRANSPORT_EXECUTOR, it's injected to Transport, so must be global. But then you see RpcManagerImpl, which is a named cache component shutting it down? Surely that cannot be right.
Going back to the original concern, take KnownComponentNames.EVICTION_SCHEDULED_EXECUTOR which is used by EvictionManagerImpl, this is never shutdown by anyone, which matches what's seen in the thread dump.
> Eviction scheduled executor never shutdown
> ------------------------------------------
>
> Key: ISPN-1388
> URL: https://issues.jboss.org/browse/ISPN-1388
> Project: Infinispan
> Issue Type: Bug
> Components: Eviction
> Affects Versions: 5.0.1.FINAL
> Reporter: Galder Zamarreño
> Assignee: Galder Zamarreño
> Priority: Critical
> Fix For: 5.1.0.ALPHA2 , 5.1.0.FINAL
>
> Attachments: threaddump.txt
>
>
> At the end of the testsuite, there're about ~900 scheduled eviction threads lying around. Is the scheduled eviction executor thread service at all???
> What's not very clear here is whose responsibility is to shutdown executor services. For example, take @ComponentName(ASYNC_TRANSPORT_EXECUTOR), this is injected into: CacheImpl, RpcManagerImpl, QueryInterceptor and JGroupsTransport. Who's supposed to shut it down? Right now, it's RpcManagerImpl doing it, which is a named cache component.
> This opens another interesting question: Are ExecutorService components global, or per cache? Or both? For example, take ASYNC_TRANSPORT_EXECUTOR, it's injected to Transport, so must be global. But then you see RpcManagerImpl, which is a named cache component shutting it down? Surely that cannot be right.
> Going back to the original concern, take KnownComponentNames.EVICTION_SCHEDULED_EXECUTOR which is used by EvictionManagerImpl, this is never shutdown by anyone, which matches what's seen in the thread dump.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the infinispan-issues
mailing list