"please implement io.gatling.recorder.http.handler.client.ClientHandler.exceptionCaught() for proper handling" exception with gatling-2.0.0-SNAPSHOT and netty-3.9.4.Final.jar

Hi,

I am a newbie here and I am trying to run a few tests using gatling. I am writing this to request solutions for two issues:

  1. previously I had gatling 2.0.0M3a and it was throwing an ‘illegal character’ error whenever it finds a %20 in the url-- this was said to be resolved but somehow I still see it in M3a. Isn’t the fix applied to M3a?

  2. So I removed M3a and installed “gatling-charts-highcharts-2.0.0-SNAPSHOT” and when I run the tests I am seeing this “please implement io.gatling.recorder.http.handler.client.ClientHandler.exceptionCaught() for proper handling” exception. One of the previous posts in github mentions that it was an issue (#462) caused by netty(netty#255) and that it was resolved after manually replacing the jar with netty 3.3.1 Final.

I have a “netty-3.9.4.Final.jar” now but I am not sure if I have to replace it with netty 3.3.1 Final for it to resolve this issue. Please advise.

Thanks

What is the exception exactly?

Sep 18, 2014 2:57:53 PM org.jboss.netty.channel.SimpleChannelUpstreamHandler

WARNING: EXCEPTION, please implement org.jboss.netty.handler.codec.http.HttpChunkAggregator.exceptionCaught() for proper handling.

java.nio.channels.UnresolvedAddressException

at sun.nio.ch.Net.checkAddress(Net.java:127)

at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:640)

at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.connect(NioClientSocketPipelineSink.java:108)

at org.jboss.netty.channel.socket.nio.NioClientSocketPipelineSink.eventSunk(NioClientSocketPipelineSink.java:70)

at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:779)

at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:54)

at org.jboss.netty.handler.codec.http.HttpClientCodec.handleDownstream(HttpClientCodec.java:97)

at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)

at org.jboss.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)

at org.jboss.netty.channel.Channels.connect(Channels.java:634)

at org.jboss.netty.channel.AbstractChannel.connect(AbstractChannel.java:207)

at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:229)

at org.jboss.netty.bootstrap.ClientBootstrap.connect(ClientBootstrap.java:182)

at io.gatling.recorder.http.handler.server.HttpServerHandler.writeRequestWithNewChannel(HttpServerHandler.scala:57)

at io.gatling.recorder.http.handler.server.HttpServerHandler.propagateRequest(HttpServerHandler.scala:90)

at io.gatling.recorder.http.handler.server.ServerHandler.messageReceived(ServerHandler.scala:53)

at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)

at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)

at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)

at org.jboss.netty.channel.SimpleChannelHandler.messageReceived(SimpleChannelHandler.java:142)

at io.gatling.recorder.http.handler.server.PortUnificationServerHandler.messageReceived(PortUnificationServerHandler.scala:42)

at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)

at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)

at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)

at org.jboss.netty.handler.codec.http.HttpContentEncoder.messageReceived(HttpContentEncoder.java:82)

at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88)

at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)

at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)

at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296)

at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:459)

at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:536)

at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:435)

at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)

at org.jboss.netty.handler.codec.http.HttpServerCodec.handleUpstream(HttpServerCodec.java:56)

at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)

at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)

at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268)

at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255)

at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)

at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:108)

at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:318)

at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:89)

at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)

at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)

at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:744)

I’ll see what I can do to improve logging, but the real problem is the “java.nio.channels.UnresolvedAddressException”.
It seems Java can’t resolve the host you’re targeting.

By any chance, could you be trying to record a website on the internet, while being inside a company intranet where internet access requires going through an outgoing proxy?

If so, you have to set it up on the recorder too, in the outgoing proxy fields (host, ports and credentials).

Thank you. I am trying to record a website hosted on a cloud instance.

It has nothing to do with my question.
Is internet access in your network protected by an outgoing proxy (that is maybe automatically configured on your browser by some start up script)?

No there is protection/outgoing proxy

Sorry, No there is no protection/outgoing proxy

java.nio.channels.UnresolvedAddressException means there’s either a proxy issue, or a DNS one (the domain you’re trying to hit can be resolved to an IP).

The only to get help would be for you to provide the real url you’re trying to hit.