-
Notifications
You must be signed in to change notification settings - Fork 548
Waiting threads when using a client concurrently #727
Comments
Thanks for the report. I think the actual problem is within the jersey client and it's async-executor threads; here is the full dump:
|
unless my stacktraces are specific to running on a mac. there are three threads with a stacktrace like:
|
Is a DockerClient instance supposed to be reused? Will this issue be fixed or "just use a different DockerClient per thread"? |
For me this also happens when using a unique DockerClient per Thread. Now checking if this also happens when not using the unix socket but the daemons http interface. |
The intention is for you to be able to use a single instance safely. |
Unfortunately for me it was not possible to switch from unix-socket to http-socket (so i didnt test anything). What works now for me as a workarround is to put all calls to a single DockerClient into a synchronized-block so no parallel requests are send. |
Just to confirm that this also happens when using single instance of DefaultDockerClient per thread. |
@stephan-huttenhuis I've taken your code, slightly modified it and with a little help of git bisect I I've narrowed down the cause. It indeed seems to be the problem in jersey-client, as @mattnworb suggested, since this issue was introduced with dcbe3b6 when jersey-client was upgraded from 2.19 to 2.22.2. Using the latest currently available version of jersey-client, 2.26, does not solve this. I've opened an issue on jersey project jersey/jersey/issues/3772 . Until then, for anyone interested, version 6.1.1 of the docker-client is the most recent one that does not contain this issue. |
Downgraded from 8.8.2 to 6.1.1. Now I am having this issue: #446 |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Can someone please explain how workaround this issue? Like @daniloradenovic I was trying to create new client for concurrent requests but it doesn't solve this. |
@aviillouz If you are not tied to later versions of the docker client, you can try with 6.1.1. |
Description
Using a client from multiple threads concurrently results in threads that wait forever.
How to reproduce
Run the following code:
What do you expect
The process ends normally
What happened instead
The process keeps running because of waiting threads
Software:
The text was updated successfully, but these errors were encountered: