seongsu shin created HTTPCLIENT-2436:
----------------------------------------

             Summary: Async connect does not retry next resolved address after 
TLS handshake failure, unlike classic
                 Key: HTTPCLIENT-2436
                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2436
             Project: HttpComponents HttpClient
          Issue Type: Bug
          Components: HttpClient (async), HttpClient (classic), Site
    Affects Versions: 5.6.5
            Reporter: seongsu shin


h2. Summary

When the TLS handshake fails against a host that resolves to several addresses, 
the classic transport tries the next resolved address and performs another 
handshake. The async transport does not. The two transports behave differently 
for the same configuration.

h2. How to reproduce

Use a server on {{localhost}} (resolves to {{127.0.0.1}} and {{::1}}) that 
accepts the TCP connection but never answers the TLS handshake. Configure 
{{handshakeTimeout}} (e.g. 3s), then execute one request with the classic 
client and one with the async client.

h2. Observed

* classic: waits 2 x handshakeTimeout (one handshake per resolved address)
* async: fails after 1 x handshakeTimeout

h2. Expected

Both transports should behave consistently when a handshake fails and more 
resolved addresses are available.

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, saying the transports should be consistent.



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