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