0

I'm trying to run a test from jmeter using "webdriver sampler" with 1500 users with a ramp-up 60 sec in one hour... everything is going well, but at one point, for example, 15 minutes later... I get this error

ChromeDriver was started successfully.
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to allocate stack guard pages failed.
Java HotSpot(TM) 64-Bit Server VM warning: Attempt to unguard stack red zone failed.
An unrecoverable stack overflow has occurred.
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_STACK_OVERFLOW (0xc00000fd) at pc=0x000000006671bbfb, pid=12248, tid=0x0000000000000358
#
# JRE version: Java(TM) SE Runtime Environment (8.0_341-b10) (build 1.8.0_341-b10)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.341-b10 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V  [jvm.dll+0x20bbfb]
#
# Failed to write core dump. Call to MiniDumpWriteDump() failed (Error 0x800705af: The paging file is too small for this operation to complete.
)
#
# An error report file with more information is saved as:
# D:\workspace\test\hs_err_pid12248.log
errorlevel=-1073741819
Press any key to continue . . . 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

I use chromedriver headless

This is the command line that I use in jenkins

apache-jmeter-5.5/bin/jmeter.bat -n -t "test.jmx"

jmeter version 5.5

what is the problem and possible cause

also i get this message sometimes in the output

WARNING: Unable to find version of CDP to use for . You may need to include a dependency on a specific version of the CDP using something similar to `org.seleniumhq.selenium:selenium-devtools-v86:4.5.0` where the version ("v86") matches the version of the chromium-based browser you're using and the version number of the artifact is the same as Selenium's.

1 Answers1

0

An unrecoverable stack overflow has occurred

it means that either you have an endless loop somewhere or create a large object which exceeds the thread stack size

The solutions are in:

  • inspect your code for any loop instances (for, foreach, while) which may fail to exit
  • increase stack size by passing the relevant -Xss argument
  • allocate another machine and switch to distributed testing mode with 750 users per machine

In general using Selenium for performance testing is not recommended, it might be a better idea to conduct the main load using JMeter's HTTP Request samplers and use 1-2 threads in another Thread Group running WebDriver Samplers to measure frontend performance, rendering speed, scripts execution time, collecting web vitals metrics and so on.

Dmitri T
  • 159,985
  • 5
  • 83
  • 133