Thanks Dmitri!

I don’t think it has anything to do with the number of threads as such, since 
we have other tests using many more threads. I will investigate your other 
suggestion about port recycle time since it seems like it could have to do with 
reallocation of the same ports. Are you sure it has nothing to do with how the 
plugin selects ports when it is time to increase?

BR
/Krister

Från: Dmitri Tikhanski <[email protected]>
Skickat: den 12 december 2022 08:34
Till: JMeter Users List <[email protected]>; Krister Nilsson 
<[email protected]>
Ämne: Re: Address already in use with Concurrency Thread Group

Krister Nilsson wrote:

Hi!



Not sure if this group also answers questions about plugins, but it's worth a 
try.



I am using the Concurrency Thread Group (v 2.10 of the downloaded zip) and even 
when I configure it to increase in steps of two(2) threads I get the stack 
trace below for a bunch of requests. It happens already when running with 10 
threads and 1200 tpm and it seems very much like it starts a few seconds BEFORE 
the plugin is about to increase the number of threads with (in this case) two 
more threads. Anyone who has seen the same problem and has a solution?



java.net.BindException: Address already in use: connect

          at java.net.DualStackPlainSocketImpl.connect0(Native Method)

          at 
java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)

          at 
java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

          at 
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

          at 
java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

          at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)

          at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

          at java.net.Socket.connect(Socket.java:607)

          at 
org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:368)

          at 
org.apache.jmeter.protocol.http.sampler.hc.LazyLayeredConnectionSocketFactory.connectSocket(LazyLayeredConnectionSocketFactory.java:92)

          at 
org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl$JMeterDefaultHttpClientConnectionOperator.connect(HTTPHC4Impl.java:326)

          at 
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:374)

          at 
org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:393)

          at 
org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)

          at 
org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186)

          at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)

          at 
org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)

          at 
org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)

          at 
org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:850)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:561)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:67)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1282)

          at 
org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1271)

          at 
org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:627)

          at 
org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:551)

          at 
org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:490)

          at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)

          at java.lang.Thread.run(Thread.java:750)



With the normal vanilla Jmeter Thread Group the same does NOT occur even for 20 
threads.



Med vänlig hälsning

Krister Nilsson

____________________________________________________________



Krister Nilsson / översteprest, prestandatest



IT Fond konto och teknisk plattform

Telefon direkt 010-454 21 97, mobil 072-210 21 97

[email protected]<mailto:[email protected]><mailto:[email protected]><mailto:[email protected]>



Pensionsmyndigheten,

Telefon vxl 0771-771 771, fax 08-658 13 00, 
www.pensionsmyndigheten.se<http://www.pensionsmyndigheten.se><http://www.pensionsmyndigheten.se/><http://www.pensionsmyndigheten.se/>





P Överväg miljöpåverkan innan du skriver ut detta e-brev.




Indeed questions about plugins should go to JMeter Plugins Support 
Forum<https://groups.google.com/g/jmeter-plugins> however I don't think it's 
connected with Concurrency Thread Group per se, try inspecting both test run 
results files using i.e. Active Threads Over 
Time<https://jmeter-plugins.org/wiki/ActiveThreadsOverTime/> and/or b listeners 
(can be installed using JMeter Plugins 
Manager<https://www.blazemeter.com/blog/jmeter-plugins-manager>), I'm pretty 
much sure that the load pattern would be different.

The error means that you've run out of outbound ports so:

  1.  You either need to get another machine and go for Distributed 
Testing<https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html>
  2.  Or amend your operating system configuration in order to increase the 
maximum number of outbound TCP ports and/or decrease port recycle time as most 
probably you're trying to reuse the port which hasn't been returned to the pool 
yet like it's described in Solved “java.net.BindException: Address already in 
use: connect” 
issue<https://www.baselogic.com/2011/11/23/solved-java-net-bindexception-address-use-connect-issue-windows/>
 on Windows article

Reply via email to