[ERROR] i.g.c.a.SingletonFeed OneForOneStrategy - null

Hello team! I am using :

Gatling 3.3.1
Scala 2.12.10
SBT 1.3.2

The following stacktrace appers sometimes, it doesn't crush my test, scenario continues to work, all requests are OK. Could you please explain me what's going wrong? What should I do to avoid the  [ERROR] a.a.OneForOneStrategy - null ?

14:59:26.346 [DEBUG] i.g.c.a.Exit - End user #56

14:59:26.347 [DEBUG] i.g.c.c.i.Injector - End user #56

14:59:26.347 [DEBUG] i.g.c.c.i.c.ClosedWorkload - Start user #81

14:59:26.348 [ERROR] a.a.OneForOneStrategy - null

java.lang.NullPointerException: null

at scala.collection.immutable.MapLike.$plus$plus(MapLike.scala:91)

at scala.collection.immutable.MapLike.$plus$plus$(MapLike.scala:90)

at scala.collection.immutable.AbstractMap.$plus$plus(Map.scala:242)

at io.gatling.core.session.Session.setAll(Session.scala:93)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$4(SingletonFeed.scala:48)

at io.gatling.commons.validation.Success.map(Validation.scala:42)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.feedRecords$1(SingletonFeed.scala:48)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$11(SingletonFeed.scala:59)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$11$adapted(SingletonFeed.scala:59)

at io.gatling.commons.validation.Success.flatMap(Validation.scala:43)

at io.gatling.commons.validation.Validation.flatMap$mcI$sp(Validation.scala:30)

at io.gatling.commons.validation.Validation.flatMap$mcI$sp$(Validation.scala:30)

at io.gatling.commons.validation.Success.flatMap$mcI$sp(Validation.scala:41)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.applyOrElse(SingletonFeed.scala:59)

at akka.actor.Actor.aroundReceive(Actor.scala:539)

at akka.actor.Actor.aroundReceive$(Actor.scala:537)

at io.gatling.core.akka.BaseActor.aroundReceive(BaseActor.scala:25)

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:612)

at akka.actor.ActorCell.invoke(ActorCell.scala:581)

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)

at akka.dispatch.Mailbox.run(Mailbox.scala:229)

at akka.dispatch.Mailbox.exec(Mailbox.scala:241)

at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)

at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)

at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)

at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

14:59:26.348 [ERROR] i.g.c.a.SingletonFeed - Actor io.gatling.core.action.SingletonFeed@5606fff0 crashed on message Some(FeedMessage(Session(1a: Read-only by users (full profile + recent trx),81,1580903966346,Map(gatling.http.ssl.sslContexts → SslContexts(io.netty.handler.ssl.OpenSslClientContext@1904131c,None), gatling.http.cache.dns → io.gatling.http.cache.DnsCacheSupport$$anon$1@5a3af89, gatling.http.cache.baseUrl → https://api.nerdwallet.biz),0,OK,List(),io.gatling.core.protocol.ProtocolComponentsRegistry$$Lambda$578/2059091244@264d3428),io.gatling.core.session.package$ExpressionSuccessWrapper$$$Lambda$241/1742431902@4dbbaa9,io.gatling.http.action.cookie.AddCookieBuilder$$anon$1@4fe90caf))

java.lang.NullPointerException: null

at scala.collection.immutable.MapLike.$plus$plus(MapLike.scala:91)

at scala.collection.immutable.MapLike.$plus$plus$(MapLike.scala:90)

at scala.collection.immutable.AbstractMap.$plus$plus(Map.scala:242)

at io.gatling.core.session.Session.setAll(Session.scala:93)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$4(SingletonFeed.scala:48)

at io.gatling.commons.validation.Success.map(Validation.scala:42)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.feedRecords$1(SingletonFeed.scala:48)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$11(SingletonFeed.scala:59)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.$anonfun$applyOrElse$11$adapted(SingletonFeed.scala:59)

at io.gatling.commons.validation.Success.flatMap(Validation.scala:43)

at io.gatling.commons.validation.Validation.flatMap$mcI$sp(Validation.scala:30)

at io.gatling.commons.validation.Validation.flatMap$mcI$sp$(Validation.scala:30)

at io.gatling.commons.validation.Success.flatMap$mcI$sp(Validation.scala:41)

at io.gatling.core.action.SingletonFeed$$anonfun$receive$1.applyOrElse(SingletonFeed.scala:59)

at akka.actor.Actor.aroundReceive(Actor.scala:539)

at akka.actor.Actor.aroundReceive$(Actor.scala:537)

at io.gatling.core.akka.BaseActor.aroundReceive(BaseActor.scala:25)

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:612)

at akka.actor.ActorCell.invoke(ActorCell.scala:581)

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:268)

at akka.dispatch.Mailbox.run(Mailbox.scala:229)

at akka.dispatch.Mailbox.exec(Mailbox.scala:241)

at akka.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)

at akka.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)

at akka.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)

at akka.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

Thanks in advance, Dasha!

Sorry, no clue.

Please provide a SSCCE.


It happens if I use a closed model
|

class LoadTest extends BaseLoadTest {

  private val testCase = "1a"
  private val concurrentUsers = getConcurrentUsers(testCase)
  private val uniqueUsers = getUniqueUsers(testCase)
  private val testDuration = getTestDuration(testCase)

  private val scn = scenario("scn")
    .feed(getFeeder(uniqueUsers, 0).circular) 
    .exec(getOnlineDataReadsScenario)

setUp(scn.inject(constantConcurrentUsers(concurrentUsers) during (testDuration minutes)).protocols(httpProtocol)).maxDuration(testDuration minutes)

Really not self contained: pieces are missing and nobody but you can run it.
You’re the only one who can debug this. Look fork concurrent accesses on the mutable non threadsafe data structures backing your custom feeder.