BotServiceStressToolkit icon indicating copy to clipboard operation
BotServiceStressToolkit copied to clipboard

ConnectionPoolTimeoutException: Timeout waiting for connection from pool

Open peterbozso opened this issue 5 years ago • 6 comments

Hi!

First and foremost thanks for the awesome work that went into implementing this toolkit. :)

Now I am using it for load testing a bot, but after increasing the thread count of my tests above 100, I get the following exception in JMeter itself:

2019-06-25 15:03:57,072 ERROR b.c.m.o.b.s.j.s.BaseBotSampler: Unexpected error
com.mashape.unirest.http.exceptions.UnirestException: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:143) ~[BotServiceStressToolkit-1.0.2-contoso.jar:?]
    at com.mashape.unirest.request.BaseRequest.asBinary(BaseRequest.java:92) ~[BotServiceStressToolkit-1.0.2-contoso.jar:?]
    at br.com.microsoft.ocp.bot.service.jmeter.sampler.BaseBotSampler.send(BaseBotSampler.java:172) [BotServiceStressToolkit-1.0.2-contoso.jar:?]
    at br.com.microsoft.ocp.bot.service.jmeter.sampler.ConversationUpdateSampler.sample(ConversationUpdateSampler.java:81) [BotServiceStressToolkit-1.0.2-contoso.jar:?]
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:622) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:546) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:486) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:253) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_211]
Caused by: org.apache.http.conn.ConnectionPoolTimeoutException: Timeout waiting for connection from pool
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:314) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:280) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) ~[httpclient-4.5.7.jar:4.5.7]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.7.jar:4.5.7]
    at com.mashape.unirest.http.HttpClientHelper.request(HttpClientHelper.java:138) ~[BotServiceStressToolkit-1.0.2-contoso.jar:?]
    ... 8 more

Because of this my tests are always failing when I increase the load, so I can't really use the tool for load testing right now as it is.

Please note that I've made some changes to the toolkit - hence the "1.0.2-contoso" tag, but that haven't touched the BaseBotSampler in any way.

What am I doing wrong here?

Thanks, Péter

peterbozso avatar Jun 26 '19 14:06 peterbozso

@peterbozso Did you get solution of this issue? I am also getting same issue but it is a latest toolkit.

upendra1588 avatar Apr 24 '20 10:04 upendra1588

No, sorry, I haven't used this toolkit since then.

peterbozso avatar Apr 24 '20 11:04 peterbozso

@peterbozso thanks for prompt response, one more question, did you try to test azure bot service using Jmeter. I mean, deployed on azure.

Thanks Singh

upendra1588 avatar Apr 24 '20 11:04 upendra1588

Not yet, but it should be very similar to doing the same on your local computer. There's some documentation about it too: https://github.com/damadei/BotServiceStressToolkit/blob/master/docs/running.md#running-against-bot-service

peterbozso avatar Apr 24 '20 17:04 peterbozso

@peterbozso , is there any alternate solution. I am facing the same issue. it will work upto 250 users.

arpit-icreate avatar Oct 15 '20 16:10 arpit-icreate

No, I am not aware of any. I haven't used the toolkit since my last comment. This repository seems to be abandoned by it's maintainer, so you'll most likely need to find the solution yourself.

peterbozso avatar Oct 15 '20 19:10 peterbozso