The following exception occurs intermittently when making requests with Jetty's HttpClient:
java.net.BindException: Address already in use: connect
at java.base/sun.nio.ch.Net.connect0(Native Method)
at java.base/sun.nio.ch.Net.connect(Unknown Source)
at java.base/sun.nio.ch.Net.connect(Unknown Source)
at java.base/sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
at org.eclipse.jetty.io.ClientConnector.connect(ClientConnector.java:433)
at org.eclipse.jetty.client.AbstractConnectorHttpClientTransport.connect(AbstractConnectorHttpClientTransport.java:73)
at org.eclipse.jetty.client.HttpClient$1.connect(HttpClient.java:602)
at org.eclipse.jetty.client.HttpClient$1.succeeded(HttpClient.java:579)
at org.eclipse.jetty.client.HttpClient$1.succeeded(HttpClient.java:575)
at org.eclipse.jetty.util.SocketAddressResolver$Async.lambda$resolve$1(SocketAddressResolver.java:181)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Unfortunately, I don't know much about the specific scenario in which this happens.
We are using an Eclipse Distribution of OpenJDK 17.0.4 with Jetty 10.0.11 on a Windows machine.
Does anyone have an idea what the cause could be?
A quick research (e.g. question 1, 2, and 3) suggests that the system is running out of "ephemeral ports", so it's a TCP issue. If that's the case here too, what am I doing wrong, and how can I fix the problem with a Jetty client?