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

Attila Magyar updated KNOX-2736:
--------------------------------
    Description: 
Not having retries in knox clients can cause service upgrade failures.

The apache http client has a default mechanism (StandardHttpRequestRetryHandler 
and DefaultServiceUnavailableRetryStrategy) to support retries.

* DefaultServiceUnavailableRetryStrategy only retries in case of a 503 - 
ServiceUnavailable.
* StandardHttpRequestRetryHandler retries when a non excluded exception occurs 
during the request.

The excluded exceptions are: InterruptedIOException, UnknownHostException, 
ConnectException, SSLException. In these cases no retry is going to happen.


The following HTTP methods are considered idempotent so they can be retried: 
GET, HEAD, PUT, DELETE, OPTIONS, TRACE.

Note that if an endpoint is implemented as a non-idempotent way (for example a 
PUT) then this might have unwanted side-effects.

Other methods such as POST are only retried if the request has not yet written 
out to the output stream when the error happened. Or if requestSentRetryEnabled 
is enabled.



> Knox clients should support retry/failover
> ------------------------------------------
>
>                 Key: KNOX-2736
>                 URL: https://issues.apache.org/jira/browse/KNOX-2736
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: KnoxShell
>            Reporter: Attila Magyar
>            Assignee: Attila Magyar
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Not having retries in knox clients can cause service upgrade failures.
> The apache http client has a default mechanism 
> (StandardHttpRequestRetryHandler and DefaultServiceUnavailableRetryStrategy) 
> to support retries.
> * DefaultServiceUnavailableRetryStrategy only retries in case of a 503 - 
> ServiceUnavailable.
> * StandardHttpRequestRetryHandler retries when a non excluded exception 
> occurs during the request.
> The excluded exceptions are: InterruptedIOException, UnknownHostException, 
> ConnectException, SSLException. In these cases no retry is going to happen.
> The following HTTP methods are considered idempotent so they can be retried: 
> GET, HEAD, PUT, DELETE, OPTIONS, TRACE.
> Note that if an endpoint is implemented as a non-idempotent way (for example 
> a PUT) then this might have unwanted side-effects.
> Other methods such as POST are only retried if the request has not yet 
> written out to the output stream when the error happened. Or if 
> requestSentRetryEnabled is enabled.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to