seongsu shin created HTTPCLIENT-2437:
----------------------------------------
Summary: Async connectionRequestTimeout does not fire on an
otherwise idle pool
Key: HTTPCLIENT-2437
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2437
Project: HttpComponents HttpClient
Issue Type: Bug
Components: HttpClient (async), Site
Affects Versions: 5.6.5
Reporter: seongsu shin
h2. Summary
On the async client, {{connectionRequestTimeout}} does not seem to fire unless
something else happens in the connection pool. A request waiting for a lease
can wait much longer than the configured timeout.
h2. How to reproduce
# Set {{connectionRequestTimeout}} to 1s and limit the pool to a single
connection.
# Send request A to a server that never completes the response. It holds the
only connection.
# Send request B to the same route.
h2. Observed
Request B was still waiting after 10s.
h2. Expected
Request B fails with a connection request timeout after about 1s.
h2. Analysis
I could not find a caller of {{validatePendingRequests()}}. Pending lease
requests seem to be expired only when the pool is touched by other activity, so
an otherwise idle pool never expires them. Enforcing this may need a periodic
task or watcher thread, but I'm not sure whether this is intended.
h2. Notes
Found while writing the timeouts section for HTTPCLIENT-2404
(https://github.com/apache/httpcomponents-website/pull/48). Oleg Kalnichevski
asked there for a JIRA.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]