StackOverflowError - Gatling 2.2.2

Hi Guys,

I got java.lang.StackOverflowError. This error shows up only on Linux/UBUNTU machine while the same test on Windows runs perfectly. Could you please check the below error and let me know if you need anything else?

Uncaught error from thread [GatlingSystem-akka.actor.default-dispatcher-5] shutting down JVM since ‘akka.jvm-exit-on-fatal-error’ is enabled for ActorSystem[GatlingSystem]
java.lang.StackOverflowError
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$JoinIterator.next(Iterator.scala:232)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$JoinIterator.next(Iterator.scala:232)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$JoinIterator.next(Iterator.scala:232)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$JoinIterator.next(Iterator.scala:232)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)
at scala.collection.Iterator$$anon$11.next(Iterator.scala:409)

Best Regards,
Yanko

First, please upgrade to 2.2.3.
Then, if you still have a problem, please provide a way for us to reproduce it.

Hi Stéphane,

Thank you for the fast response. Did the upgrade and started running the tests but it will take long for the result to show up as the test is running around a day and fails close to the end of it. Will be able to provide update tomorrow.

Have a nice evening ahead!

Best Regards,
Yanko

Just to update the thread … everything seems to be working fine now. Thanks.

Thanks for the update

Hi Guys,

I have similar error during compilation.
It seems to be present when use to param on post request.

Exemple with no problem :

exec(http("Ajout Panier") .post("/create-multiples-colis") .formParam("toIsoCode", "${addressFormExpPro}") .formParam("addressFormExpPro.addressId", "${addressFormExpPro}") .formParam("addressFormExpPro.titleCode", "mr") .formParam("addressFormExpPro.firstName", "TMC") .formParam("addressFormExpPro.lastName", "TMC") .formParam("addressFormExpPro.raisonSociale", "TMC") .formParam("addressFormExpPro.numLibelle", "211 QUAI ANDRE CITROEN") .formParam("addressFormExpPro.codePostal", "75015") .formParam("addressFormExpPro.countryName", "France Métropolitaine") .formParam("addressFormExpPro.countryCode", "fr") .formParam("addressFormExpPro.localite", "PARIS") .formParam("addressFormExpPro.phone", "0640963830") .formParam("priseEnCharge", "true") .formParam("labels[0].totalPrice", "6.1") .formParam("labels[0].checkRecordAddressBook", "true") .formParam("labels[0].addressFormDestPart.titleCode", "mrs") .formParam("labels[0].addressFormDestPart.lastName", "KAHN") .formParam("labels[0].addressFormDestPart.firstName", "NADIA") .formParam("labels[0].addressFormDestPart.numLibelle", "11 QUAI ANDRE CITROEN") .formParam("labels[0].addressFormDestPart.codePostal", "75015") .formParam("labels[0].addressFormDestPart.localite", "PARIS") .formParam("labels[0].weight", "0.50") .formParam("labels[0].typeColis", "STANDARD") .formParam("labels[0].livraisonAvecSignature", "false") .formParam("labels[0].indemniteBasicCost", "2.5") .formParam("labels[0].indemnitePlus", "false") .formParam("labels[0].insuredValue", "12.00") .formParam("labels[0].confirmedInsuredValue", "12") .formParam("labels[0].insuredValueMin", "12") .formParam("labels[0].insuredValueMax", "1000") .formParam("labels[0].indemnitePlusCost", "0") .formParam("totalPrice", "58.40000000000001"))

Exemple with problem when extends formParam :

exec(http("Ajout Panier")
.post("/create-multiples-colis")
.formParam("toIsoCode", "${addressFormExpPro}")
.formParam("addressFormExpPro.addressId", "${addressFormExpPro}")
.formParam("addressFormExpPro.titleCode", "mr")
.formParam("addressFormExpPro.firstName", "TMC")
.formParam("addressFormExpPro.lastName", "TMC")
.formParam("addressFormExpPro.raisonSociale", "TMC")
.formParam("addressFormExpPro.numLibelle", "211 QUAI ANDRE CITROEN")
.formParam("addressFormExpPro.codePostal", "75015")
.formParam("addressFormExpPro.countryName", "France Métropolitaine")
.formParam("addressFormExpPro.countryCode", "fr")
.formParam("addressFormExpPro.localite", "PARIS")
.formParam("addressFormExpPro.phone", "0640963830")
.formParam("priseEnCharge", "true")
.formParam("labels[0].totalPrice", "6.1")
.formParam("labels[0].checkRecordAddressBook", "true")
.formParam("labels[0].addressFormDestPart.titleCode", "mrs")
.formParam("labels[0].addressFormDestPart.lastName", "KAHN")
.formParam("labels[0].addressFormDestPart.firstName", "NADIA")
.formParam("labels[0].addressFormDestPart.numLibelle", "11 QUAI ANDRE CITROEN")
.formParam("labels[0].addressFormDestPart.codePostal", "75015")
.formParam("labels[0].addressFormDestPart.localite", "PARIS")
.formParam("labels[0].weight", "0.50")
.formParam("labels[0].typeColis", "STANDARD")
.formParam("labels[0].livraisonAvecSignature", "false")
.formParam("labels[0].indemniteBasicCost", "2.5")
.formParam("labels[0].indemnitePlus", "false")
.formParam("labels[0].insuredValue", "12.00")
.formParam("labels[0].confirmedInsuredValue", "12")
.formParam("labels[0].insuredValueMin", "12")
.formParam("labels[0].insuredValueMax", "1000")
.formParam("labels[0].indemnitePlusCost", "0")
.formParam("labels[1].totalPrice", "6.1")
.formParam("labels[1].checkRecordAddressBook", "true")
.formParam("labels[1].addressFormDestPart.titleCode", "mrs")
.formParam("labels[1].addressFormDestPart.lastName", "PERRINP")
.formParam("labels[1].addressFormDestPart.firstName", "NADIA")
.formParam("labels[1].addressFormDestPart.numLibelle", "11 QUAI ANDRE CITROEN")
.formParam("labels[1].addressFormDestPart.codePostal", "75015")
.formParam("labels[1].addressFormDestPart.localite", "PARIS")
.formParam("labels[1].weight", "0.50")
.formParam("labels[1].typeColis", "STANDARD")
.formParam("labels[1].livraisonAvecSignature", "false")
.formParam("labels[1].indemniteBasicCost", "2.5")
.formParam("labels[1].indemnitePlus", "false")
.formParam("labels[1].insuredValue", "12.00")
.formParam("labels[1].confirmedInsuredValue", "12")
.formParam("labels[1].insuredValueMin", "12")
.formParam("labels[1].insuredValueMax", "1000")
.formParam("labels[1].indemnitePlusCost", "0")
.formParam("labels[2].totalPrice", "15.4")
.formParam("labels[2].checkRecordAddressBook", "true")
.formParam("labels[2].addressFormDestPro.raisonSociale", "SEPHORA")
.formParam("labels[2].addressFormDestPro.titleCode", "mrs")
.formParam("labels[2].addressFormDestPro.lastName", "DURAND")
.formParam("labels[2].addressFormDestPro.firstName", "CLAUDINE")
.formParam("labels[2].addressFormDestPro.numLibelle", "11 QUAI ANDRE CITROEN")
.formParam("labels[2].addressFormDestPro.codePostal", "75015")
.formParam("labels[2].addressFormDestPro.localite", "PARIS")
.formParam("labels[2].weight", "0.75")
.formParam("labels[2].typeColis", "VOLUMINEUX")
.formParam("labels[2].livraisonAvecSignature", "true")
.formParam("labels[2].indemniteBasicCost", "2.5")
.formParam("labels[2].indemnitePlus", "false")
.formParam("labels[2].insuredValue", "50.00")
.formParam("labels[2].confirmedInsuredValue", "50")
.formParam("labels[2].insuredValueMin", "50")
.formParam("labels[2].insuredValueMax", "1000")
`
.formParam(“labels[2].indemnitePlusCost”, “2.5”)


.formParam(“labels[3].totalPrice”, “15.4”)

.formParam(“labels[3].checkRecordAddressBook”, “true”)

.formParam(“labels[3].addressFormDestPro.raisonSociale”, “MAXIMUM”)

.formParam(“labels[3].addressFormDestPro.titleCode”, “mrs”)

.formParam(“labels[3].addressFormDestPro.lastName”, “DURAND”)

.formParam(“labels[3].addressFormDestPro.firstName”, “CLAUDINE”)

.formParam(“labels[3].addressFormDestPro.numLibelle”, “11 QUAI ANDRE CITROEN”)

.formParam(“labels[3].addressFormDestPro.codePostal”, “75015”)

.formParam(“labels[3].addressFormDestPro.localite”, “PARIS”)

.formParam(“labels[3].weight”, “0.75”)

.formParam(“labels[3].typeColis”, “VOLUMINEUX”)

.formParam(“labels[3].livraisonAvecSignature”, “true”)

.formParam(“labels[3].indemniteBasicCost”, “2.5”)

.formParam(“labels[3].indemnitePlus”, “false”)

.formParam(“labels[3].insuredValue”, “50.00”)

.formParam(“labels[3].confirmedInsuredValue”, “50”)

.formParam(“labels[3].insuredValueMin”, “50”)

.formParam(“labels[3].insuredValueMax”, “1000”)

.formParam(“labels[3].indemnitePlusCost”, “2.5”)


.formParam(“labels[4].totalPrice”, “15.4”)

.formParam(“labels[4].checkRecordAddressBook”, “true”)

.formParam(“labels[4].addressFormDestPro.raisonSociale”, “SANDT”)

.formParam(“labels[4].addressFormDestPro.titleCode”, “mrs”)

.formParam(“labels[4].addressFormDestPro.lastName”, “DURAND”)

.formParam(“labels[4].addressFormDestPro.firstName”, “CLAUDINE”)

.formParam(“labels[4].addressFormDestPro.numLibelle”, “11 QUAI ANDRE CITROEN”)

.formParam(“labels[4].addressFormDestPro.codePostal”, “75015”)

.formParam(“labels[4].addressFormDestPro.localite”, “PARIS”)

.formParam(“labels[4].weight”, “0.75”)

.formParam(“labels[4].typeColis”, “VOLUMINEUX”)

.formParam(“labels[4].livraisonAvecSignature”, “true”)

.formParam(“labels[4].indemniteBasicCost”, “2.5”)

.formParam(“labels[4].indemnitePlus”, “false”)

.formParam(“labels[4].insuredValue”, “50.00”)

.formParam(“labels[4].confirmedInsuredValue”, “50”)

.formParam(“labels[4].insuredValueMin”, “50”)

.formParam(“labels[4].insuredValueMax”, “1000”)

.formParam(“labels[4].indemnitePlusCost”, “2.5”)


.formParam(“totalPrice”, “58.40000000000001”))
`

`

`

Any idea for resolving situations ?

Your application uses so many form parameters it generates too many method chainings for the compiler.

2 solutions: increase the Xss for the compiler’s JVM, or split chains into smaller parts.