damadei/BotServiceStressToolkit

ConnectionPoolTimeoutException: Timeout waiting for connection from pool

peterbozso opened this issue · 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 Did you get solution of this issue? I am also getting same issue but it is a latest toolkit.

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

@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

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 , is there any alternate solution. I am facing the same issue. it will work upto 250 users.

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.