Joey Frazee created NIFI-3978:
---------------------------------

             Summary: Site-to-Site HTTP client tests fails on machines with too 
many cores
                 Key: NIFI-3978
                 URL: https://issues.apache.org/jira/browse/NIFI-3978
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Joey Frazee
            Assignee: Joey Frazee
            Priority: Minor


The S2S http client tests will fail on machines with many cores because the 
[thread pool 
limits|https://github.com/apache/nifi/blob/master/nifi-commons/nifi-site-to-site-client/src/test/java/org/apache/nifi/remote/client/http/TestHttpClient.java#L435]
 are too low (see error below).

Looks like the reason for this is that Jetty will use acceptors + selectors + 
request=1 threads, but calculates both the number of acceptors and selectors 
based on the number of hyper threads available:

* The default number of acceptor tasks is the minimum of 1 and the number of 
available CPUs divided by 8
* The default number of selectors is equal to half of the number of processors 
available to the JVM

So suppose you have a 12 core 2 HT machine. Then you'll use 12 * 2 / 8 + 12 * 2 
/ 2 + 1 = 16 threads and all is well with the current limit of 20. But if you 
have a 16 core machine, you'll use 16 * 2 / 8 + 16 * 2 / 2 + 1 = 21 and go over 
the limit.

We should bump this up to 50 which should accommodate builds on 2 x 16 core.

{code}
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0 sec <<< 
FAILURE! - in org.apache.nifi.remote.client.http.TestHttpClient
org.apache.nifi.remote.client.http.TestHttpClient  Time elapsed: 0 sec  <<< 
ERROR!
java.lang.IllegalStateException: Insufficient threads: max=20 < 
needed(acceptors=4 + selectors=16 + request=1)
        at org.eclipse.jetty.server.Server.doStart(Server.java:414)
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
        at 
org.apache.nifi.remote.client.http.TestHttpClient.setup(TestHttpClient.java:501)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to