Attila Csoma created KNOX-1139:
----------------------------------
Summary: thread pool size in test are not enough in a 32 core
machine if gateway port mapping enabled
Key: KNOX-1139
URL: https://issues.apache.org/jira/browse/KNOX-1139
Project: Apache Knox
Issue Type: Test
Reporter: Attila Csoma
Currently Jetty calculates acceptor and selector count as a fraction of
processor count (core/8 and core/2 respectively) and will maximize them as 4.
That means 4 acceptor and 4 select in a 32+ core machine for each
{{ServerConnector}}. In {{Server.doStart}} jetty will check if
{{maxThreadPoolSize}} is large enough to store a request thread and all
acceptors and selectors thread for each connector together.
Currently in tests thread pool max size fixed as 16. In {{GatewayServer.start}}
if gateway port mapping is enabled it will initialize two connectors in jetty
which on a 32+ core machine will create 4+4 acceptor and 4+4 selector. With the
one extra request thread it will exceed the 16 thread pool limit and
{{org.apache.hadoop.gateway.GatewayPortMappingFuncTest} will throw the
following exception:
{code}
java.lang.IllegalStateException: Insufficient threads: max=16 <
needed(acceptors=8 + selectors=8 + request=1)
at
org.apache.hadoop.gateway.GatewayPortMappingFuncTest.setup(GatewayPortMappingFuncTest.java:96)
{code}
This is only a unit test problem since the default value for thread pool size
in {{GatewayConfigImpl}} is 254.
Probably it would be a better method to calculate thread pool count from core
count in tests or just use the default value from {{GatewayConfigImpl}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)