knox-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Larry McCay (Jira)" <j...@apache.org>
Subject [jira] [Updated] (KNOX-1439) HA Dispatch implementations should differentiate IOExceptions
Date Wed, 11 Nov 2020 17:45:00 GMT

     [ 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.5.0)
                   1.6.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: 1.6.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.3.4#803005)

Mime
View raw message