RFR: 8293562: blocked threads with KeepAliveCache.get [v4]

Daniel Jeliński djelinski at openjdk.org
Wed Sep 28 15:36:04 UTC 2022


> 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.

Daniel Jeliński has updated the pull request incrementally with two additional commits since the last revision:

 - Close connections in finally block
 - Fix copyright year

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/10401/files
  - new: https://git.openjdk.org/jdk/pull/10401/files/4410abf1..48a7ca17

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10401&range=03
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10401&range=02-03

  Stats: 6 lines in 2 files changed: 0 ins; 0 del; 6 mod
  Patch: https://git.openjdk.org/jdk/pull/10401.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10401/head:pull/10401

PR: https://git.openjdk.org/jdk/pull/10401


More information about the net-dev mailing list