apache / apache/jmeter

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

Open
#6,240 0 comments 0 reactions 0 assignees View on GitHub
defect to-triage
Dominant language
Java
Stars
9.5k
Forks
2.3k
Avg merge
1d 22h
Merged PRs (30d)
5

Description

### 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](https://github.com/apache/jmeter/files/14385021/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](https://github.com/apache/jmeter/assets/114644227/eac35efc-38cf-4908-b48c-7d70743e8d8a)

Produced exceptions correlates with the `failed` 'Regular Expression Extractor'
![image](https://github.com/apache/jmeter/assets/114644227/b27a84ad-0098-4443-ac10-9dd415d0ab9d)

To narrow down where is it getting from:
![image](https://github.com/apache/jmeter/assets/114644227/45c4953c-38a2-4411-8309-92fe00bf2100)

### JMeter Version

5.6.2

### Java Version

openjdk 11

### OS Version

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.