apache / jmeter

Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services
https://jmeter.apache.org/
Apache License 2.0
7.97k stars 2.02k forks source link

java.lang.NumberFormatException per each Jmeter's 'Regular Expression Extractor' when match not found #6240

Open syampol13 opened 2 months ago

syampol13 commented 2 months ago

Expected behavior

Exception generation is expensive operation so better to not use it whenever possible. Failed 'Regular Expression Extractor' shouldn't generate an exception as in some cases it might result in additional CPU utilization

Actual behavior

Failed 'Regular Expression Extractor' generate an exception which in turn may result in additional CPU utilization on high failure rate

Steps to reproduce the problem

Test plan attached. NumberFormatException.zip

It contains two runtime controllers. 1st run for 120sec with a dummy sample and successful 'Regular Expression Extractor' (match found) and another last for 10sec with the same dummy sample but failed 'Regular Expression Extractor' (match not found). Each such match not found generates a java.lang.NumberFormatException. This creates corresponding exception spike with ~7K ops rate and causes extra CPU utilization (in my case it was ~10% user+kernel with 16 logical processors).

As you may see CPU is almost idle when 'Regular Expression Extractor' passed. But as it start failing - large number of NumberFormatException Exception is produced and this increase CPU utilization: image

Produced exceptions correlates with the failed 'Regular Expression Extractor' image

To narrow down where is it getting from: image

JMeter Version

5.6.2

Java Version

openjdk 11

OS Version

No response