]
David Lloyd commented on WFLY-6540:
-----------------------------------
I think this is a duplicate of WFLY-5332.
Batch thread pool keepAlive setting seems to be ignored
-------------------------------------------------------
Key: WFLY-6540
URL:
https://issues.jboss.org/browse/WFLY-6540
Project: WildFly
Issue Type: Bug
Components: Batch
Affects Versions: 10.0.0.Final
Reporter: Martin Kouba
Assignee: James Perkins
Maybe I'm missing something but although the default _keepAlive_ is set to 30
seconds, the threads seem to run indefinitely - see also steps to reproduce.
Snippet from the default config file:
{code}
<thread-pool name="batch">
<max-threads count="10"/>
<keepalive-time time="30" unit="seconds"/>
</thread-pool>
{code}
Anyway, the {{UnboundedQueueThreadPoolService}}, or the underlying
{{JBossThreadPoolExecutor}} respectively, used by the Batch subsystem is using the same
{{corePoolSize}} and {{maximumPoolSize}} and it seems the core threads are not allowed to
time out, i.e.
{{org.jboss.threads.JBossThreadPoolExecutor.setAllowCoreThreadTimeout(boolean)}} is not
used.
Moreover, a {{JBossThreadPoolExecutor.setAllowCoreThreadTimeout(boolean)}} invocation
would probably result in an infinite loop:
{code}
public void setAllowCoreThreadTimeout(final boolean allow) {
setAllowCoreThreadTimeout(allow);
}
{code}
should be replaced with:
{code}
public void setAllowCoreThreadTimeout(final boolean allow) {
allowCoreThreadTimeOut(allow);
}
{code}
Given that {{JBossThreadPoolExecutor}} is used by more subsystems this issue may affect
other subsystems as well.