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

Larry McCay updated KNOX-1439:
------------------------------
    Fix Version/s:     (was: 1.3.0)
                   1.4.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: Phil Zampino
>            Priority: Major
>             Fix For: 1.4.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
(v7.6.3#76005)

Reply via email to