Integrated: 8293562: blocked threads with KeepAliveCache.get
Daniel Jeliński
djelinski at openjdk.org
Mon Oct 3 06:35:53 UTC 2022
On Fri, 23 Sep 2022 06:55:11 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
> Please review this patch that makes sure KeepAliveCache does not block all threads while closing sockets.
>
> Changes:
> - get operation no longer closes sockets; if there's no socket that is recent enough, get returns null and lets the cleaner thread close the sockets
> - put operation closes sockets without holding the cache lock. Additionally, if the cache is full, it places the new connection in the cache and removes the oldest connection.
> - the cleaner thread creates a list of connections to close, and then closes them after releasing the cache lock
> - additionally, we set the socket timeout to 1 millisecond before calling socket.close
>
> The new test fails with `Wait for second request timed out` without this patch, passes after the changes. Tiers 1-3 clean.
This pull request has now been integrated.
Changeset: 03f25a9c
Author: Daniel Jeliński <djelinski at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/03f25a9c6924430ec4063b801b2b6ca55b9067c9
Stats: 346 lines in 3 files changed: 278 ins; 43 del; 25 mod
8293562: blocked threads with KeepAliveCache.get
Reviewed-by: dfuchs, michaelm
-------------
PR: https://git.openjdk.org/jdk/pull/10401
More information about the net-dev
mailing list