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