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]

Reply via email to