org.jboss.netty.channel.ConnectTimeoutException

The request was generated, accepted by the endpoint, processed and the response sent. However, the gatling client aborted during the reading of the response. This particular call has small response body. There are other calls with several KB of response body and those fail partly in the middle of reading the response.

a. Initially I thought this was due to CPU overloading a single CPU gatling machine

b. Switched to 4 CPU machine. Load average stays under 1. But, same error happens.

00:45:09.103 [WARN ] i.g.h.a.AsyncHandler - Request ‘somerequest’ failed
org.jboss.netty.channel.ConnectTimeoutException: connection timed out: myhost.mydomain.tld/54.245.235.162:443
at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:137) [netty-3.6.6.Final.jar:na]
Wrapped by: java.net.ConnectException: connection timed out: myhost.mydomain.tld 11.22.33.55:443 to https://myhost.mydomain.tld/api/v1/95/agents/35623/log/35623.log
at com.ning.http.client.providers.netty.NettyConnectListener.operationComplete(NettyConnectListener.java:103) ~[async-http-client-1.7.19.20130706.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.notifyListener(DefaultChannelFuture.java:427) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.notifyListeners(DefaultChannelFuture.java:418) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.DefaultChannelFuture.setFailure(DefaultChannelFuture.java:380) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioClientBoss.processConnectTimeout(NioClientBoss.java:140) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioClientBoss.process(NioClientBoss.java:83) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:42) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [netty-3.6.6.Final.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [netty-3.6.6.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]

Also, given that gatling is based on netty (evented daemon), I think that there aren’t multiple worker threads inside the JVM (might be multiple non-worker threads).

Is there a way to have gatling/netty/JVM take advantage of multiple CPUs?

“The request was generated, accepted by the endpoint, processed and the response sent.” => I think you’re wrong. org.jboss.netty.channel.ConnectTimeoutException means that the server didn’t replied with the CONNECT ACK (ie connection could not be established), not that the request timed out

"I think that there aren’t multiple worker threads inside the JVM (might be multiple non-worker threads). " => wrong. Netty is not Node.js: one boss thread but several worker threads.