Hi HC Dev,

I'm investigating lock contention issues when using the
PoolingHttpClientConnectionManager, similar to those described in
https://issues.apache.org/jira/browse/HTTPCLIENT-1809.

I noticed in the older AbstractConnPool and the latest StrictConnPool is
that when leasing a connection the connection request timeout is not used
in the attempt to acquire the global lock. See:
https://github.com/apache/httpcomponents-core/blob/master/httpcore5/src/main/java/org/apache/hc/core5/pool/StrictConnPool.java#L175

It seems to me the time spent acquiring this lock does count against the
total connection request time and therefore should be using the timeout
value. It can be misleading to have a connection request take longer than
your timeout value (due to lock contention) but not actually timeout.
Catching this specific timeout would also create the opportunity for
additional stats/signaling that you're dealing with contention on that lock.

Thoughts?

Thanks,
Chris

Reply via email to