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

Sandor Molnar updated KNOX-1439:
--------------------------------
    Fix Version/s: 3.0.0
                       (was: 2.1.0)

Due to the pending 2.1.0 release this JIRA has been pushed out to 3.0.0 as part 
of a bulk update. If there is a specific reason to pull this back into the 
2.1.0 release and you intend to provide a PR in the next few days please 
provide justification and reset the Fix Version to 2.1.0.

> HA Dispatch implementations should differentiate IOExceptions
> -------------------------------------------------------------
>
>                 Key: KNOX-1439
>                 URL: https://issues.apache.org/jira/browse/KNOX-1439
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>    Affects Versions: 1.1.0
>            Reporter: Philip Zampino
>            Priority: Major
>             Fix For: 3.0.0
>
>
> The HA Dispatch implementations catch IOException, and initiate failover 
> logic regardless of the type of error the exception represents. For instance, 
> some IOExceptions indicate interrupted data transfer while others represent 
> connection errors.
> This distinction is especially important for PUT and POST requests, for which 
> InputStreamEntity is used for the content. InputStreamEntity is a 
> non-repeatable entity type, making the results of subsequent attempts 
> unreliable.
> We should probably only failover / retry on connection-related IOException 
> types:
>  * java.net.SocketException
>  * java.net.UnknownHostException
> And return an error response to the client for other IOException types. Maybe 
> it makes sense to consider the HTTP method to make this decision (e.g., retry 
> GET requests, but not PUT or POST).
> The affected dispatch implementations includes at least:
>  * org.apache.knox.gateway.ha.dispatch.DefaultHaDispatch
>  * org.apache.knox.gateway.ha.dispatch.AtlasApiHaDispatch
>  * org.apache.knox.gateway.ha.dispatch.AtlasHaDispatch
>  * org.apache.knox.gateway.dispatch.NiFiHaDispatch
>  * org.apache.knox.gateway.hdfs.dispatch.AbstractHdfsHaDispatch
>  
> If retry is configured, but we won't retry, then perhaps 
> java.net.HttpRetryException should be thrown.
>  



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

Reply via email to