[
https://issues.jboss.org/browse/ISPN-1388?page=com.atlassian.jira.plugin....
]
Galder Zamarreño updated ISPN-1388:
-----------------------------------
Summary: All executors should be shutdown centrally (was: Eviction scheduled
executor never shutdown)
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???
Right now shutdown of executors, which are global components, is spread around different
parts of the code. In fact, eviction scheduled executor is not shutdown at all. They
should be shutdown from a centralised point, i.e. GlobalCR.stop().
was:
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.
All executors should be shutdown centrally
------------------------------------------
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???
Right now shutdown of executors, which are global components, is spread around different
parts of the code. In fact, eviction scheduled executor is not shutdown at all. They
should be shutdown from a centralised point, i.e. GlobalCR.stop().
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira