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