Gatling memory leak OOM

Hey guys,

I tried to run a long endurance test but it crashed after 13.5 hours with the following exception. I am running the test through Jenkins with a dedicated slave. Can anyone tell what might cause this or anything I can do to get more info/optimise the code? JVM runtime parameters are whatever comes with a default Jenkins slave.

Thanks!

**22:33:59**  20:33:55.543 [gatling-http-1-2][ERROR][HttpAppHandler.java:230] i.g.h.c.i.HttpAppHandler - Fatal error
**22:33:59**  java.lang.OutOfMemoryError: Java heap space
**22:33:59**  20:33:55.547 [GatlingSystem-akka.actor.default-dispatcher-2][ERROR][Slf4jLogger.scala:73] a.a.ActorSystemImpl - exception on LARS’ timer thread
**22:33:59**  java.lang.OutOfMemoryError: Java heap space
**22:33:59**  20:33:55.543 [gatling-http-1-3][WARN ][DefaultPromise.java:580] i.n.u.c.DefaultPromise - An exception was thrown by io.gatling.http.client.impl.DefaultHttpClient$$Lambda$558/0x000000084054a840.operationComplete()
**22:33:59**  java.lang.OutOfMemoryError: Java heap space
**22:33:59**  	at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBootstrap.java:305)
**22:33:59**  	at io.netty.bootstrap.Bootstrap.doResolveAndConnect(Bootstrap.java:157)
**22:33:59**  	at io.netty.bootstrap.Bootstrap.connect(Bootstrap.java:150)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.openNewChannelRec(DefaultHttpClient.java:629)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.openNewChannel(DefaultHttpClient.java:603)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.sendTxWithNewChannel(DefaultHttpClient.java:493)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.lambda$sendTx$2(DefaultHttpClient.java:378)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient$$Lambda$558/0x000000084054a840.operationComplete(Unknown Source)
**22:33:59**  	at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:577)
**22:33:59**  	at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:551)
**22:33:59**  	at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:490)
**22:33:59**  	at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:183)
**22:33:59**  	at io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.sendTx(DefaultHttpClient.java:360)
**22:33:59**  	at io.gatling.http.client.impl.DefaultHttpClient.sendRequest(DefaultHttpClient.java:263)
**22:33:59**  	at io.gatling.http.engine.HttpEngine.executeRequest(HttpEngine.scala:149)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor.$anonfun$execute$1(HttpTxExecutor.scala:142)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor.$anonfun$execute$1$adapted(HttpTxExecutor.scala:126)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor$$Lambda$686/0x0000000840623840.apply(Unknown Source)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor.executeWithCache(HttpTxExecutor.scala:53)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor.execute(HttpTxExecutor.scala:126)
**22:33:59**  	at io.gatling.http.engine.tx.HttpTxExecutor.execute(HttpTxExecutor.scala:120)
**22:33:59**  	at io.gatling.http.action.HttpRequestAction.$anonfun$sendRequest$1(HttpRequestAction.scala:67)
**22:33:59**  	at io.gatling.http.action.HttpRequestAction.$anonfun$sendRequest$1$adapted(HttpRequestAction.scala:59)
**22:33:59**  	at io.gatling.http.action.HttpRequestAction$$Lambda$685/0x0000000840623040.apply(Unknown Source)
**22:33:59**  	at io.gatling.commons.validation.Success.map(Validation.scala:45)
**22:33:59**  	at io.gatling.http.action.HttpRequestAction.sendRequest(HttpRequestAction.scala:59)
**22:33:59**  	at io.gatling.core.action.RequestAction.$anonfun$execute$1(Action.scala:100)
**22:33:59**  	at io.gatling.core.action.RequestAction$$Lambda$660/0x0000000840609040.apply(Unknown Source)
**22:33:59**  	at io.gatling.commons.validation.Success.flatMap(Validation.scala:46)
**22:33:59**  	at io.gatling.core.action.RequestAction.execute(Action.scala:97)
**22:33:59**  	at io.gatling.core.action.RequestAction.execute$(Action.scala:96)
**22:33:59**  20:33:55.546 [gatling-http-1-6][ERROR][HttpAppHandler.java:230] i.g.h.c.i.HttpAppHandler - Fatal error
**22:33:59**  java.lang.OutOfMemoryError: Java heap space
**22:33:59**  20:33:55.580 [GatlingSystem-akka.actor.default-dispatcher-2][ERROR][Slf4jLogger.scala:73] a.a.ActorSystemImpl - Uncaught error from thread [GatlingSystem-scheduler-1]: Java heap space, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[GatlingSystem]

It’s not a memory leak. It’s either your slave or your system under load that’s too slow and can’t handle the load you’re trying to generate.