Antony Bowesman (Bug 61380):
Seems like there's a flaw in the shutdown logic
When a test is running, it goes through JMeterThread. executeSamplePackage() where it goes into the delay(pack.getTimers()) call.
If you shut down a test, it will interrupt the timers and you will see these messages in jmeter.log
jmeter.threads.JMeterThread: The delay timer was interrupted - probably did not wait as long as intended
As a result, all threads blocked waiting to sample() will get released at pretty much the same time and as the JMeter iteration logic does the delay before the sample() rather than after, it means all threads will go into sample() at about the same time.
We've had cases where we've had to stop a production test as we're breaking it and the shutdown exacerbates the problem.
As the JMeterThread.stop() sets the running flag to false, it's probably a simple fix to wrap the code following the delay() call with if (running) {
}
Severity: normal
OS: All