1

The issue is reproducible when running a JMeter test under specific machine. The number of users is 1. The JMeter test uses regex to exclude certain domains ^((?!somerealdomain\.com).)*$. The thread is closed almost immediately and the error in the jmeter log is:

2018-09-03 15:53:12,596 ERROR o.a.j.JMeter: Uncaught exception: 
java.lang.StackOverflowError: null
    at org.apache.oro.text.regex.Perl5Matcher.__match(Unknown Source) ~[oro-2.0.8.jar:?]
    at org.apache.oro.text.regex.Perl5Matcher.__match(Unknown Source) ~[oro-2.0.8.jar:?]
    at org.apache.oro.text.regex.Perl5Matcher.__match(Unknown Source) ~[oro-2.0.8.jar:?]

The Perl5Matcher error is present approximately 1000 times. As the issue is reproducible only on one from our 3 performance agents, I am not sure what is causing it. The heap is 1GB on all machines:

HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m

Java version is the 1.8.0_181 an all three agents.

Do you have ideas where to look?

K. B.
  • 3,342
  • 3
  • 19
  • 32

3 Answers3

1

Try settings Xss to same value everywhere:

-Xss256k

Also please show all the jmeter.log of:

  • jmeter.log
  • jmeter-server.log
UBIK LOAD PACK
  • 33,980
  • 5
  • 71
  • 116
1

If only one machine is affected it means that it is not the same as other machines therefore it can produce not the same load as you expect so I would start with identifying the differences.

  1. Double check that your load generators are running the same OS
  2. Double check that your load generators use the same JVM version (preferably from Oracle, preferably server JRE or JDK) vendor, architecture, build, etc.
  3. Double check that your load generators use the same (preferably latest) JMeter version
  4. Double check that your load generators have the same configuration, the best way is setting up one node according to JMeter Best Practices and copy the installation over to all slave machines
  5. Save response data for failing request and verify that it is the same for all slaves, you can do this by adding the next 2 lines to user.properties file:

    jmeter.save.saveservice.output_format=xml
    meter.save.saveservice.response_data=true
    
  6. Try amending your regular expression to exclude the domain to something like:

    • ^((?!somerealdomain).)*$

      or

    • ^((?!somerealdomain.com).)*$

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

I found the solution. I added to the start of the PATH C:\Program Files\Java\jre1.8.0_181\bin; and then restarted the computer as explained here.

What lead me to this was that after I have installed latest Java JRE 64-bit version and I run java -version, the message was "Java is not recognized as an internal or external command". It was strange that the JMeter test has even started its execution on this machine.

There was no need to do this on the other two agents. Thank you all for your kind suggestions.

K. B.
  • 3,342
  • 3
  • 19
  • 32