[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-2282?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oleg Kalnichevski resolved HTTPCLIENT-2282.
-------------------------------------------
    Fix Version/s:     (was: Stuck)
       Resolution: Won't Fix

> Handle java.net.SocketException: Connection reset more gracefully
> -----------------------------------------------------------------
>
>                 Key: HTTPCLIENT-2282
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-2282
>             Project: HttpComponents HttpClient
>          Issue Type: Improvement
>          Components: HttpClient (classic)
>    Affects Versions: 4.5.14
>            Reporter: Konrad Windszus
>            Priority: Major
>              Labels: volunteers-wanted
>
> Currently in edge cases the retry mechanism leveraging 
> DefaultHttpRequestRetryHandler does not catch "Connection reset" exceptions. 
> This is caused by
>  # A connection pool which keeps the connections alive for too long
>  # The reduced default validation of connections in 
> [https://hc.apache.org/httpcomponents-client-4.5.x/current/httpclient/apidocs/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.html:]
>  "The code now only checks the connection if the elapsed time since the last 
> use of the connection exceeds the timeout that has been set. The default 
> timeout is set to 2000ms"
> The error scenario is as follows:
>  # A client opens a number of connection almost in parallel which exceed the 
> number of retries
>  # then the connections are reused shortly before they are closed silently by 
> some proxy or the server.
>  # Now the client tries to reuse those but runs into the "Connection reset" 
> issue. Although it will retry through DefaultHttpRequestRetryHandler 3 
> different pooled connections they all suffer from the fact that they are not 
> longer accepted (and therefore throw the same SocketException).
> Maybe one could improve the resilience by calling 
> [https://hc.apache.org/httpcomponents-client-4.5.x/current/httpclient/apidocs/org/apache/http/impl/conn/PoolingHttpClientConnectionManager.html#setValidateAfterInactivity(int])
>  with 0 on the underlying connection pool manager until a connection is 
> successfully established to that host again.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to