Jens Popp created HTTPCLIENT-2404:
-------------------------------------
Summary: Provide comprehensive timeout configuration documentation
with interaction matrix and override behavior
Key: HTTPCLIENT-2404
URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2404
Project: HttpComponents HttpClient
Issue Type: Wish
Components: HttpClient (async), HttpClient (classic)
Affects Versions: 5.5.1, 5.5
Reporter: Jens Popp
Apache HTTP Client currently exposes numerous timeout settings across different
configuration points (connection manager, request config, socket config, etc.).
Right now they are documented (as far as I was able to find) only on the point,
where they can be set. The lack of comprehensive documentation about their
interactions, precedence rules, and override behavior makes it difficult to
configure clients correctly—especially in distributed systems where timeout
handling is critical for failover and performance.
*Problem Statement:*
As demonstrated my comment in HTTPCLIENT-2386, seemingly minor implementation
changes can have severe production impacts. In our case, upgrading from 5.5 to
5.5.1 changed timeout behavior during TLS handshake scenarios. When servers
under heavy load (100% CPU) could establish socket connections but failed TLS
handshakes, the increased timeout (defaulted back to request timeout instead of
connection timeout) prevented proper failover to backup servers, causing
service degradation.
*Requested Documentation:*
# *Complete timeout inventory* - All configurable timeouts with their default
values and scope
# *Interaction matrix* - How timeouts interact when multiple apply to the same
operation
# *Override rules* - Precedence order when timeouts are set at different
levels (global, connection manager, request)
# *Lifecycle coverage* - Which timeout applies to each phase (DNS, connect,
TLS handshake, data transfer)
# *System best practices* - Recommended patterns for different scenarios
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]