ResponseProcessor - AsyncHandlerActor crashed on tx HttpTx - java.nio.charset.CharacterCodingException: null

I’m seeing the below a lot when running my tests having upgraded to 2.2.0. I didn’t see these errors before upgrading.

The site in question doesn’t appear to be the issue - I can’t find any common link between the sites that cause the crash.

`
13:11:06.833 [ERROR] i.g.h.a.ResponseProcessor - AsyncHandlerActor crashed on tx HttpTx(Session(No proxy Users (0),38,Map(gatling.http.cache.dns → io.gatling.http.resolver.ShuffleJdkNameResolver@8a8b440, url → milwaukeeinsurance.jobs, timestamp.833c9b5d-e846-4934-9ef2-03e11ab5f618 → 1461931866342, 0ddcc6fe-b6e5-47c2-aeb9-1825732a0b04 → 0, term → giving usa 2012 report, link → http://veterans.jobs/, 833c9b5d-e846-4934-9ef2-03e11ab5f618 → 0, timestamp.0ddcc6fe-b6e5-47c2-aeb9-1825732a0b04 → 1461931866342, gatling.http.cookies → CookieJar(Map(CookieKey(sessionid,milwaukeeinsurance.jobs,/) → StoredCookie(sessionid=317tulq2477spttntefut1auny4emaod; path=/; maxAge=1209600s; HTTPOnly,true,true,1461931866684), CookieKey(aguid,my.jobs,/) → StoredCookie(aguid=2a031ab961d140d8b9ebbfcad2b5174b; domain=.my.jobs; path=/,false,false,1461931866649)))),1461931859434,22,OK,List(ExitOnCompleteLoopBlock(833c9b5d-e846-4934-9ef2-03e11ab5f618), TryMaxBlock(0ddcc6fe-b6e5-47c2-aeb9-1825732a0b04,io.gatling.core.action.InnerTryMax@2bdc07e6,OK)),io.gatling.core.protocol.ProtocolComponentsRegistry$$Lambda$208/1949126165@19af0ea0),HttpRequest(jqsmoothness.css,http://d2e48ltfsb5exy.cloudfront.net/framework/css/code/jqsmoothness.css GET headers: Accept:text/css,/;q=0.1 DNT:1 Accept-Language:en-US,en;q=0.5 Accept-Encoding:gzip, deflate User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 Chrome 45.0,HttpRequestConfig(List(HttpCheck(CheckBase(io.gatling.http.check.HttpCheckBuilders$$$Lambda$41/2038105753@77a6de10,io.gatling.core.session.package$ExpressionSuccessWrapper$$$Lambda$39/1345401730@36d52863,,None),Status,None)),None,None,Some(5),false,None,true,true,CoreComponents(Actor[akka://GatlingSystem/user/gatling-controller#-930363237],io.gatling.core.controller.throttle.Throttler@2d7d4ad9,io.gatling.core.stats.DataWritersStatsEngine@32f4e925,io.gatling.core.action.Exit@126a833e,GatlingConfiguration(CoreConfiguration(2.2.0,None,None,utf-8,None,ExtractConfiguration(RegexConfiguration(200),XPathConfiguration(200),JsonPathConfiguration(200,false),CssConfiguration(200)),DirectoryConfiguration(user-files/data,user-files/bodies,user-files/simulations,None,None,results),false,200,200,1000),ChartingConfiguration(false,1000,false,IndicatorsConfiguration(800,1200,50.0,75.0,95.0,99.0)),HttpConfiguration(200,200,200,Some(http://gatling.io),true,SslConfiguration(None,None),AhcConfiguration(true,60000,60000,60000,2,60000,true,4096,8192,8192,10240000,List(TLSv1.2, TLSv1.1, TLSv1),List(),0,0,false,false,true,true,false,-1,-1,-1),DnsConfiguration(5000,3)),DataConfiguration(ArrayBuffer(io.gatling.core.stats.writer.ConsoleDataWriterType$@7c17d10e, io.gatling.core.stats.writer.FileDataWriterType$@3bfb67d7),FileDataWriterConfiguration(8192),LeakDataWriterConfiguration(30),ConsoleDataWriterConfiguration(false),GraphiteDataWriterConfiguration(false,localhost,2003,Tcp,gatling,8192,1)),Config(SimpleConfigObject({“awt”:{“toolkit”:“sun.lwawt.macosx.LWCToolkit”},“file”:{“encoding”:{“pkg”:“sun.io”},“separator”:"/"},“ftp”:{“nonProxyHosts”:“local|.local|169.254/16|.169.254/16”},“gatling”:{“charting”:{“indicators”:{“higherBound”:1200,“lowerBound”:800,“percentile1”:50,“percentile2”:75,“percentile3”:95,“percentile4”:99},“maxPlotPerSeries”:1000,“noReports”:false,“useGroupDurationMetric”:false},“core”:{“directory”:{“binaries”:"",“bodies”:“user-files/bodies”,“data”:“user-files/data”,“reportsOnly”:"",“results”:“results”,“simulations”:“user-files/simulations”},“elFileBodiesCacheMaxCapacity”:200,“encoding”:“utf-8”,“extract”:{“css”:{“cacheMaxCapacity”:200},“jsonPath”:{“cacheMaxCapacity”:200,“preferJackson”:false},“regex”:{“cacheMaxCapacity”:200},“xpath”:{“cacheMaxCapacity”:200}},“mute”:false,“outputDirectoryBaseName”:"",“rawFileBodiesCacheMaxCapacity”:200,“rawFileBodiesInMemoryMaxSize”:1000,“runDescription”:"",“simulationClass”:""},“data”:{“console”:{“light”:false},“file”:{“bufferSize”:8192},“graphite”:{“bufferSize”:8192,“host”:“localhost”,“light”:false,“port”:2003,“protocol”:“tcp”,“rootPathPrefix”:“gatling”,“writeInterval”:1},“leak”:{“noActivityTimeout”:30},“writers”:[“console”,“file”]},“http”:{“ahc”:{“acceptAnyCertificate”:true,“connectTimeout”:60000,“httpClientCodecMaxChunkSize”:8192,“httpClientCodecMaxHeaderSize”:8192,“httpClientCodecMaxInitialLineLength”:4096,“keepAlive”:true,“maxRetry”:2,“pooledConnectionIdleTimeout”:60000,“readTimeout”:60000,“requestTimeout”:60000,“soLinger”:-1,“soRcvBuf”:-1,“soReuseAddress”:false,“soSndBuf”:-1,“sslEnabledCipherSuites”:[],“sslEnabledProtocols”:[“TLSv1.2”,“TLSv1.1”,“TLSv1”],“sslSessionCacheSize”:0,“sslSessionTimeout”:0,“tcpNoDelay”:true,“useNativeTransport”:false,“useOpenSsl”:false,“usePooledMemory”:true,“webSocketMaxFrameSize”:10240000},“dns”:{“maxQueriesPerResolve”:3,“queryTimeout”:5000},“enableGA”:true,“fetchedCssCacheMaxCapacity”:200,“fetchedHtmlCacheMaxCapacity”:200,“perUserCacheMaxCapacity”:200,“ssl”:{“keyStore”:{“algorithm”:"",“file”:"",“password”:"",“type”:""},“trustStore”:{“algorithm”:"",“file”:"",“password”:"",“type”:""}},“warmUpUrl”:“http://gatling.io”}},“gopherProxySet”:“false”,“http”:{“nonProxyHosts”:“local|.local|169.254/16|.169.254/16”},“java”:{“awt”:{“graphicsenv”:“sun.awt.CGraphicsEnvironment”,“printerjob”:“sun.lwawt.macosx.CPrinterJob”},“class”:{“path”:"/Users/robertgates55/web_security_performance_gatling/lib/akka-actor_2.11-2.4.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/akka-slf4j_2.11-2.4.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/async-http-client-2.0.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/bcpkix-jdk15on-1.54.jar:/Users/robertgates55/web_security_performance_gatling/lib/bcprov-jdk15on-1.54.jar:/Users/robertgates55/web_security_performance_gatling/lib/boon-json-0.5.7-RC1.jar:/Users/robertgates55/web_security_performance_gatling/lib/boon-reflekt-0.5.7-RC1.jar:/Users/robertgates55/web_security_performance_gatling/lib/boopickle_2.11-1.1.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/commons-pool-1.6.jar:/Users/robertgates55/web_security_performance_gatling/lib/concurrentlinkedhashmap-lru-1.4.2.jar:/Users/robertgates55/web_security_performance_gatling/lib/config-1.3.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/fastring_2.11-0.2.4.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-app-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-charts-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-charts-highcharts-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-commons-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-core-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-http-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-jdbc-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-jms-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-metrics-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-recorder-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/gatling-redis-2.2.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/geronimo-jms_1.1_spec-1.1.1.jar:/Users/robertgates55/web_security_performance_gatling/lib/HdrHistogram-2.1.8.jar:/Users/robertgates55/web_security_performance_gatling/lib/jackson-annotations-2.7.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/jackson-core-2.7.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/jackson-databind-2.7.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/jackson-dataformat-csv-2.7.3.jar:/Users/robertgates55/web_security_performance_gatling/lib/javassist-3.20.0-GA.jar:/Users/robertgates55/web_security_performance_gatling/lib/jodd-core-3.7.jar:/Users/robertgates55/web_security_performance_gatling/lib/jodd-lagarto-3.7.jar:/Users/robertgates55/web_security_performance_gatling/lib/jodd-log-3.7.jar:/Users/robertgates55/web_security_performance_gatling/lib/jsonpath_2.11.jar:/Users/robertgates55/web_security_performance_gatling/lib/logback-classic-1.1.7.jar:/Users/robertgates55/web_security_performance_gatling/lib/logback-core-1.1.7.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-buffer-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-codec-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-codec-dns-2.0.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-codec-http-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-common-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-handler-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-reactive-streams-1.0.4.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-resolver-2.0.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-resolver-dns-2.0.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-transport-4.0.36.Final.jar:/Users/robertgates55/web_security_performance_gatling/lib/netty-transport-native-epoll-4.0.36.Final-linux-x86_64.jar:/Users/robertgates55/web_security_performance_gatling/lib/quicklens_2.11-1.4.6.jar:/Users/robertgates55/web_security_performance_gatling/lib/reactive-streams-1.0.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/redisclient_2.11-3.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/Saxon-HE-9.7.0-4.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-compiler-2.11.8.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-java8-compat_2.11-0.7.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-library-2.11.8.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-logging_2.11-3.1.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-parser-combinators_2.11-1.0.4.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-reflect-2.11.8.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-swing_2.11-1.0.2.jar:/Users/robertgates55/web_security_performance_gatling/lib/scala-xml_2.11-1.0.5.jar:/Users/robertgates55/web_security_performance_gatling/lib/scopt_2.11-3.4.0.jar:/Users/robertgates55/web_security_performance_gatling/lib/slf4j-api-1.7.21.jar:/Users/robertgates55/web_security_performance_gatling/lib/t-digest-3.1.jar:/Users/robertgates55/web_security_performance_gatling/user-files:/Users/robertgates55/web_security_performance_gatling/conf:",“version”:“52.0”},“endorsed”:{“dirs”:"/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/endorsed"},“ext”:{“dirs”:"/Users/robertgates55/Library/Java/Extensions:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java"},“home”:"/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre",“io”:{“tmpdir”:"/var/folders/6z/hwppzvh540d820sm8w9b1sdh0000gp/T/"},“library”:{“path”:"/Users/robertgates55/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."},“net”:{“preferIPv4Stack”:“true”,“preferIPv6Addresses”:“false”},“runtime”:{“name”:“Java™ SE Runtime Environment”,“version”:“1.8.0_31-b13”},“specification”:{“name”:“Java Platform API Specification”,“vendor”:“Oracle Corporation”,“version”:“1.8”},“vendor”:{“url”:{“bug”:“http://bugreport.sun.com/bugreport/"}},“version”:“1.8.0_31”,“vm”:{“info”:"mixed mode”,“name”:“Java HotSpot™ 64-Bit Server VM”,“specification”:{“name”:“Java Virtual Machine Specification”,“vendor”:“Oracle Corporation”,“version”:“1.8”},“vendor”:“Oracle Corporation”,“version”:“25.31-b07”}},“line”:{“separator”:"\n"},“os”:{“arch”:“x86_64”,“name”:“Mac OS X”,“version”:“10.10.2”},“path”:{“separator”:":"},“socksNonProxyHosts”:“local|.local|169.254/16|.169.254/16”,“sun”:{“arch”:{“data”:{“model”:“64”}},“boot”:{“class”:{“path”:"/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/classes"},“library”:{“path”:"/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib"}},“cpu”:{“endian”:“little”,“isalist”:""},“io”:{“unicode”:{“encoding”:“UnicodeBig”}},“java”:{“command”:“io.gatling.app.Gatling”,“launcher”:“SUN_STANDARD”},“jnu”:{“encoding”:“UTF-8”},“management”:{“compiler”:“HotSpot 64-Bit Tiered Compilers”},“os”:{“patch”:{“level”:“unknown”}}},“user”:{“country”:{“format”:“GB”},“dir”:"/Users/robertgates55/web_security_performance_gatling",“home”:"/Users/robertgates55",“language”:“en”,“name”:“robertgates55”,“timezone”:“Europe/London”}})))),HttpComponents(HttpProtocol(List(),Some(http://gatling.io),HttpProtocolEnginePart(true,false,6,false,Map(),None,List()),HttpProtocolRequestPart(Map(Accept → , DNT → , Accept-Language → , Accept-Encoding → , User-Agent → ),None,false,false,false,None,true,None),HttpProtocolResponsePart(true,Some(5),false,true,None,List(),None,true,None),HttpProtocolWsPart(List(),false,None),HttpProtocolProxyPart(None,List())),io.gatling.http.ahc.HttpEngine@7c997144,io.gatling.http.cache.HttpCaches@24e997dd,io.gatling.http.ahc.ResponseProcessor@577211c2),List())),io.gatling.http.response.ResponseBuilder$$$Lambda$194/1907467420@2b52ef02,io.gatling.core.action.Pause@7f73a495,Some(Actor[akka://GatlingSystem/user/resourceFetcher-130#299735574]),0,io.gatling.core.session.Session$$$Lambda$226/2128742070@3365dd45), forwarding user to the next action

java.nio.charset.CharacterCodingException: null

at io.gatling.http.util.Utf8ByteBuffersDecoder.write(ByteBuffersDecoder.scala:135)

at io.gatling.http.util.Utf8ByteBuffersDecoder.io$gatling$http$util$Utf8ByteBuffersDecoder$$$anonfun$6(ByteBuffersDecoder.scala:144)

at io.gatling.http.util.Utf8ByteBuffersDecoder.io$gatling$http$util$Utf8ByteBuffersDecoder$$$anonfun$6$adapted(ByteBuffersDecoder.scala:142)

at io.gatling.http.util.Utf8ByteBuffersDecoder$$Lambda$311/442344649.apply(Unknown Source)

at scala.collection.immutable.List.foreach(List.scala:381)

at io.gatling.http.util.Utf8ByteBuffersDecoder.decode(ByteBuffersDecoder.scala:142)

at io.gatling.http.util.ByteBuffersDecoder$.decode(ByteBuffersDecoder.scala:52)

at io.gatling.http.util.BytesHelper$.byteArraysToString(BytesHelper.scala:61)

at io.gatling.http.response.InputStreamResponseBody.liftedTree1$1(ResponseBody.scala:125)

at io.gatling.http.response.InputStreamResponseBody.string$lzycompute(ResponseBody.scala:124)

at io.gatling.http.response.InputStreamResponseBody.string(ResponseBody.scala:120)

at io.gatling.http.ahc.ResponseProcessor.executeNext(ResponseProcessor.scala:152)

at io.gatling.http.ahc.ResponseProcessor.logAndExecuteNext(ResponseProcessor.scala:169)

at io.gatling.http.ahc.ResponseProcessor.checkAndProceed$1(ResponseProcessor.scala:291)

at io.gatling.http.ahc.ResponseProcessor.processResponse(ResponseProcessor.scala:321)

at io.gatling.http.ahc.ResponseProcessor.onCompleted(ResponseProcessor.scala:61)

at io.gatling.http.ahc.AsyncHandler.onCompleted(AsyncHandler.scala:127)

at io.gatling.http.ahc.AsyncHandler.onCompleted(AsyncHandler.scala:46)

at org.asynchttpclient.netty.NettyResponseFuture.getContent(NettyResponseFuture.java:188)

at org.asynchttpclient.netty.NettyResponseFuture.done(NettyResponseFuture.java:223)

at org.asynchttpclient.netty.handler.HttpHandler.finishUpdate(HttpHandler.java:58)

at org.asynchttpclient.netty.handler.HttpHandler.handleChunk(HttpHandler.java:159)

at org.asynchttpclient.netty.handler.HttpHandler.handleRead(HttpHandler.java:189)

at org.asynchttpclient.netty.handler.AsyncHttpClientHandler.channelRead(AsyncHttpClientHandler.java:82)

at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)

at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)

at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)

at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)

at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)

at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)

at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)

at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)

at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428)

at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)

at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)

at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243)

at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)

at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)

at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)

at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)

at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)

at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)

at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)

at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)

at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)

at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)

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

`

I can’t seem to replicate it directly (eg with a single call to the site in the above example), but it seems to happen when running in parallel with other requests, and happens more often at higher requests/sec rates.

I believe this (or a related issue) is currently causing gatling to make far fewer requests than it should do - the requests/sec rates I’m seeing having upgraded are far lower.

Thanks,

Rob

Hi,

No offense, but if, like most users on this mailing list, you don’t receive any notifications, you’d really benefit from subscribing properly, eg receiving a daily digest.
This issue has already been discussed here and dealt with.
Please browse the archives.

Regards,

I will sign up immediately!

I had searched the archives, and though I found a few related issues, hadn’t found a solution - I wanted to raise it separately in case there was a separate issue. Could you please point me to the discussion that deals with it?

Thanks for all your hard work and a great product.

Cheers,
Rob

here: https://groups.google.com/forum/#!topic/gatling/WaTuyX_6j3Y
and here: https://groups.google.com/forum/#!msg/gatling/19dE-TDGnbA/9kvvh1y2AAAJ

Issue fixed here: https://github.com/gatling/gatling/issues/2981

Fix available in snapshot on Sonatype.

Cheers,

Thanks Stephane - problems (including the related performance issues) all resolved in the 2.2.1 snapshot!

Hi Stephane,

I encountered “java.nio.charset.CharacterCodingException: null” today and stumbled across this conversation. I was using 2.2.0 release but tried 2.2.1 snapshot as well. I see that the error occurs only for requests fetching PNG files but not JS files (I just checked these two). I’ve given below a simple reproducer which I tested and got the below error. Please try and let me know if you are able to reproduce. And if possible a quick fix too please :slight_smile:

Reproducer

import scala.concurrent.duration._

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._

class test extends Simulation {

val httpProtocol = http
.baseURL(“http://gatling.io”)
.disableAutoReferer
.acceptHeader(“image/webp,image/,/*;q=0.8”)
.acceptEncodingHeader(“gzip, deflate, sdch”)
.acceptLanguageHeader(“en-US,en;q=0.8”)
.userAgentHeader(“Gatling (Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36”)
//.contentTypeHeader(“application/x-www-form-urlencoded;charset=UTF-8”)
.maxConnectionsPerHostLikeChrome

val headers_12 = Map(
//“Accept” → “image/webp,image/,/*;q=0.8”,
“Connection” → “keep-alive”,
“Referer” → “http://gatling.io”)

val scn = scenario(“test”)
.exec(http(“request_12”)
.get("/images/logo-gilt.png")
.headers(headers_12))

setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}

Error - On Console

Simulation test completed in 0 seconds
Parsing log file(s)…
Parsing log file(s) done
Generating reports…
Exception in thread “main” java.lang.UnsupportedOperationException: There were no requests sent during the simulation, reports won’t be generated
at io.gatling.charts.report.ReportsGenerator.generateFor(ReportsGenerator.scala:48)
at io.gatling.app.LogFileProcessor.generateReports(RunResultProcessor.scala:64)
at io.gatling.app.LogFileProcessor.processRunResult(RunResultProcessor.scala:43)
at io.gatling.app.Gatling.start(Gatling.scala:66)
at io.gatling.app.Gatling$.start(Gatling.scala:57)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:49)
at io.gatling.app.Gatling$.main(Gatling.scala:43)
at io.gatling.app.Gatling.main(Gatling.scala)

Error - In log file (I’m using file appender in logback.conf)

23:38:10.313 [ERROR] i.g.h.a.ResponseProcessor - ResponseProcessor crashed on session=Session(test,1,Map(gatling.http.cache.dns → io.gatling.http.resolver.ShuffleJdkNameResolver@2a6b2d9d),1463249290201,0,OK,List(),io.gatling.core.protocol.ProtocolComponentsRegistry$$Lambda$157/961859592@50504422) request=request_12: http://gatling.io/images/logo-gilt.png GET headers: Referer:http://gatling.io Connection:keep-alive Accept:image/webp,image/,/*;q=0.8 Accept-Language:en-US,en;q=0.8 Accept-Encoding:gzip, deflate, sdch User-Agent:Gatling (Linux) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 resourceFetcher=None redirectCount=0, forwarding user to the next action
java.nio.charset.CharacterCodingException: null
at io.gatling.http.util.Utf8ByteBuffersDecoder.write(ByteBuffersDecoder.scala:135)
at io.gatling.http.util.Utf8ByteBuffersDecoder.io$gatling$http$util$Utf8ByteBuffersDecoder$$$anonfun$6(ByteBuffersDecoder.scala:147)
at io.gatling.http.util.Utf8ByteBuffersDecoder.io$gatling$http$util$Utf8ByteBuffersDecoder$$$anonfun$6$adapted(ByteBuffersDecoder.scala:145)
at scala.collection.immutable.List.foreach(List.scala:381)
at io.gatling.http.util.Utf8ByteBuffersDecoder.decode(ByteBuffersDecoder.scala:145)
at io.gatling.http.util.ByteBuffersDecoder$.decode(ByteBuffersDecoder.scala:52)
at io.gatling.http.util.BytesHelper$.byteArraysToString(BytesHelper.scala:61)
at io.gatling.http.response.InputStreamResponseBody.liftedTree1$1(ResponseBody.scala:125)
at io.gatling.http.response.InputStreamResponseBody.string$lzycompute(ResponseBody.scala:124)
at io.gatling.http.response.InputStreamResponseBody.string(ResponseBody.scala:120)
at io.gatling.http.util.package$HttpStringBuilder$.io$gatling$http$util$package$HttpStringBuilder$$$anonfun$7(package.scala:168)
at scala.Option.foreach(Option.scala:257)
at io.gatling.http.util.package$HttpStringBuilder$.appendResponse$extension(package.scala:159)
at io.gatling.http.ahc.ResponseProcessor.dump$1(ResponseProcessor.scala:92)
at io.gatling.http.ahc.ResponseProcessor.logRequest(ResponseProcessor.scala:101)
at io.gatling.http.ahc.ResponseProcessor.logAndExecuteNext(ResponseProcessor.scala:168)
at io.gatling.http.ahc.ResponseProcessor.checkAndProceed$1(ResponseProcessor.scala:291)
at io.gatling.http.ahc.ResponseProcessor.processResponse(ResponseProcessor.scala:321)
at io.gatling.http.ahc.ResponseProcessor.onCompleted(ResponseProcessor.scala:61)
at io.gatling.http.ahc.AsyncHandler.onCompleted(AsyncHandler.scala:121)
at io.gatling.http.ahc.AsyncHandler.onCompleted(AsyncHandler.scala:46)
at org.asynchttpclient.netty.NettyResponseFuture.getContent(NettyResponseFuture.java:188)
at org.asynchttpclient.netty.NettyResponseFuture.done(NettyResponseFuture.java:223)
at org.asynchttpclient.netty.handler.HttpHandler.finishUpdate(HttpHandler.java:58)
at org.asynchttpclient.netty.handler.HttpHandler.handleChunk(HttpHandler.java:159)
at org.asynchttpclient.netty.handler.HttpHandler.handleRead(HttpHandler.java:189)
at org.asynchttpclient.netty.handler.AsyncHttpClientHandler.channelRead(AsyncHttpClientHandler.java:82)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:428)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:277)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:264)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:243)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:292)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:278)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:962)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:528)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:485)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:371)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)

Update: Adding “.silent” in each of the request’s exec suppresses this error and I’m going with it for now. Though adding silentResources in protocol won’t help. Also error happens for png, gif & woff file types so far but not JS or CSS. I also run this simulation through 2.2.1 & 2.3.0 snapshots and the issues mentioned before can be observed there too.

-Mahesh

Hi,

This issue is actually already fixed, but not released yet: https://github.com/gatling/gatling/issues/3017

Thanks for reporting.

Not just binary, I’m seeing even CSS files response processors crashing.So, disabling TRACE level logging of request/response fixes all this? Awesome! Thank you.

Do you have a reproducer showing crash on test files (such as JS or CSS)? You said you those were working fine in your previous email.

Sorry! Due to project deadline, I couldn’t come up with a reproducer. But I’ll get back to you soon on this.