apache / apache/jmeter

Stack overflow in Random Controller/Interleave Controller if it contains child Throughput Controller elements

Open
#3,915 0 comments 0 reactions 0 assignees View on GitHub
os: Windows P2
Dominant language
Java
Stars
9.5k
Forks
2.3k
Avg merge
1d 22h
Merged PRs (30d)
5

Description

**Aleksey Koltakov** ([Bug 59223](https://bz.apache.org/bugzilla//show_bug.cgi?id=59223&redirect=false)):
Create and run test plan with several Throughput Controller elements under Random Controller/Interleave Controller:

Test Plan
Thread Group (threads 1; ramp up 1; loop count 1)
Loop Controller (Forever ON)
Random Controller
Throughput Controller (Total Executions; Throughput 2; Per User ON)
HTTP Request
Throughput Controller (Total Executions; Throughput 1; Per User ON)
HTTP Request

Only the first request is sent, test ends with the following error (stack overflow):

cController.next(GenericController.java:180)
at org.apache.jmeter.control.InterleaveControl.next(InterleaveControl.java:84)
at org.apache.jmeter.control.InterleaveControl.nextIsAController(InterleaveControl.java:95)
at org.apache.jmeter.control.GenericController.next(GenericController.java:180)
at org.apache.jmeter.control.InterleaveControl.next(InterleaveControl.java:84)
at org.apache.jmeter.control.InterleaveControl.nextIsAController(InterleaveControl.java:95)
at org.apache.jmeter.control.GenericController.next(GenericController.java:180)
...

If you replace Random Controller with Simple Controller the test will run correctly.

Created attachment [Test Plan.jmx](https://apache.github.io/jmeter-bugzilla-attachments/23/59223/33697/Test%20Plan.jmx): Test plan to reproduce bug

Severity: major
OS: Windows NT

Contributor guide

Open the contributing guide

Research direction

Start with GenericController.next and InterleaveControl.next/nextIsAController, using the attached Test Plan.jmx to reproduce the recursive stack overflow with nested Throughput Controllers. Trace how Random Controller and Interleave Controller advance through child elements. Done means the plan completes without a stack overflow and the expected child HTTP requests are sent.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
performance, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.