Integrated: JDK-8277795: ldap connection timeout not honoured under contention

Rob McKenna robm at openjdk.java.net
Fri Feb 4 13:10:15 UTC 2022


On Thu, 25 Nov 2021 23:54:18 GMT, Rob McKenna <robm at openjdk.org> wrote:

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

This pull request has now been integrated.

Changeset: 3d926dd6
Author:    Rob McKenna <robm at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/3d926dd66ef6551e91a4ebbbc59dcff58f5ede5a
Stats:     467 lines in 5 files changed: 324 ins; 72 del; 71 mod

8277795: ldap connection timeout not honoured under contention

Reviewed-by: dfuchs, aefimov

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

PR: https://git.openjdk.java.net/jdk/pull/6568


More information about the core-libs-dev mailing list