RFR: JDK-8277795: ldap connection timeout not honoured under contention [v3]
Rob McKenna
robm at openjdk.java.net
Tue Dec 14 15:26:54 UTC 2021
> This fix attemps to resolve an issue where threads can stack up on each other while waiting to get a connection from the ldap pool to an unreachable server. It does this by having each thread start a countdown prior to holding the pools' lock. (which has been changed to a ReentrantLock) Once the lock has been grabbed, the timeout is adjusted to take the waiting time into account and the process of getting a connection from the pool or creating a new one commences.
>
> Note: this fix also changes the meaning of the connection pools initSize somewhat. In a situation where we have a large initSize and a small timeout the first thread could actually exhaust the timeout before creating all of its initial connections. Instead this fix simply creates a single connection per pool-connection-request. It continues to do so for subsequent requests regardless of whether an existing unused connection is available in the pool until initSize is exhausted. As such it may require a CSR.
Rob McKenna has updated the pull request incrementally with one additional commit since the last revision:
Allow the test to pass on MacOSX
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/6568/files
- new: https://git.openjdk.java.net/jdk/pull/6568/files/1b679497..7c277622
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6568&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6568&range=01-02
Stats: 22 lines in 1 file changed: 10 ins; 1 del; 11 mod
Patch: https://git.openjdk.java.net/jdk/pull/6568.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/6568/head:pull/6568
PR: https://git.openjdk.java.net/jdk/pull/6568
More information about the core-libs-dev
mailing list