Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use with Shaping Throughput Timer and Concurrency Thread group results in Interrupted Exception #29

Open
maddenj-ie opened this issue Jul 26, 2022 · 2 comments

Comments

@maddenj-ie
Copy link

Hi,

I observed the following issue. Details provided below. Thanks for the help. Regards.

Environment

Java : openjdk version "11.0.14" 2022-01-18 LTS
Jmeter : 5.4.3
jmeter-bzm-http2-2.0
jmeter-plugins-casutg 2.10

Target Service

Wiremock

Test Procedure

Wiremock

// start wiremock server ( localhost:8080 by default )
$ java -jar wiremock-jre8-standalone-2.33.2.jar

// configure wiremock mapping
$ curl -X POST \
--data '{ "request": { "url": "/get/this", "method": "GET" }, "response": { "status": 200, "body": "Here it is!\n" }}' \
http://localhost:8080/__admin/mappings/new

// verify wiremock mapping
$ curl http://localhost:8080/get/this
$ Here it is!

Jmeter Configuration

Please see the attached jmx file.
In brief, a http2 request sampler is configured with a Throughput Shaping Timer and Concurrent Thread group.
This is inspired by https://www.blazemeter.com/blog/jmeters-shaping-timer-plugin specifically the dynamic thread count aspect.

Note: the test suite also contains a http request sample (disabled) which does not exhibit the same behaviour.

Observations

Stacktrace in response data

java.lang.InterruptedException
	at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1343)
	at java.base/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
	at org.eclipse.jetty.io.ManagedSelector.doStart(ManagedSelector.java:124)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.io.SelectorManager.doStart(SelectorManager.java:238)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.io.ClientConnector.doStart(ClientConnector.java:192)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.doStart(AbstractConnectorHttpClientTransport.java:62)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:171)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:121)
	at org.eclipse.jetty.client.HttpClient.doStart(HttpClient.java:221)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
	at com.blazemeter.jmeter.http2.core.HTTP2JettyClient.start(HTTP2JettyClient.java:105)
	at com.blazemeter.jmeter.http2.sampler.HTTP2Sampler.buildClient(HTTP2Sampler.java:86)
	at com.blazemeter.jmeter.http2.sampler.HTTP2Sampler.getClient(HTTP2Sampler.java:100)
	at com.blazemeter.jmeter.http2.sampler.HTTP2Sampler.sample(HTTP2Sampler.java:56)
	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1296)
	at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1285)
	at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638)
	at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
	at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
	at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
	at java.base/java.lang.Thread.run(Thread.java:829)

bzmHttp2InterruptedException.tar.gz

@RicardoPoleo
Copy link
Contributor

Hello @maddenj-ie,

Thanks for reporting this behavior, every feedback makes this plugin much better. Our team will try to replicate this behavior and attempt to fix it.

Also, we will do a release during these weeks fixing other issues, and I'll let you know about it when we do make, so you can test it again. Does that work for you?

Once again, thanks for taking the time.

Best Regards

@maddenj-ie
Copy link
Author

HI @RicardoPoleo,

Thanks for looking into it. Yes, I'd be happy to test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants