[ https://issues.apache.org/jira/browse/RANGER-5201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Naoki Takezoe updated RANGER-5201: ---------------------------------- Description: RangerRESTClient has a retry mechanism for connectivity errors that was implemented in https://issues.apache.org/jira/browse/RANGER-3565 but it doesn't retry HTTP 5xx errors because it works only when ClientHandlerException is thrown: https://github.com/apache/ranger/blob/dbaad69de10ff7b21b5bd3fc08c4b65b4aa25dff/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java#L409-L415 while Jersey's default client handler that is used in RangerRESTClient doesn't raise an exception even for 5xx errors: https://github.com/javaee/jersey-1.x/blob/1.19.3/jersey-client/src/main/java/com/sun/jersey/client/urlconnection/URLConnectionClientHandler.java Therefore, policy retrieval immediately fails without retry when, for example, ranger-admin behind a reverse proxy is temporarily unavailable. It's better to retry GET requests also on HTTP 5xx errors in RangerRESTClient. was: RangerRESTClient has a retry mechanism for connectivity errors that was implemented in https://issues.apache.org/jira/browse/RANGER-3565 but it doesn't retry HTTP 5xx errors because it works only when ClientHandlerException is thrown: https://github.com/apache/ranger/blob/dbaad69de10ff7b21b5bd3fc08c4b65b4aa25dff/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java#L409-L415 while Jersey's default client handler that is used in RangerRESTClient doesn't raise an exception even for 5xx errors: https://github.com/javaee/jersey-1.x/blob/1.19.3/jersey-client/src/main/java/com/sun/jersey/client/urlconnection/URLConnectionClientHandler.java It's better to retry policy retrieval requests on HTTP 5xx errors too. > Retry GET request on server error in RangerRESTClient > ----------------------------------------------------- > > Key: RANGER-5201 > URL: https://issues.apache.org/jira/browse/RANGER-5201 > Project: Ranger > Issue Type: Improvement > Components: plugins > Reporter: Naoki Takezoe > Priority: Minor > > RangerRESTClient has a retry mechanism for connectivity errors that was > implemented in https://issues.apache.org/jira/browse/RANGER-3565 but it > doesn't retry HTTP 5xx errors because it works only when > ClientHandlerException is thrown: > https://github.com/apache/ranger/blob/dbaad69de10ff7b21b5bd3fc08c4b65b4aa25dff/agents-common/src/main/java/org/apache/ranger/plugin/util/RangerRESTClient.java#L409-L415 > while Jersey's default client handler that is used in RangerRESTClient > doesn't raise an exception even for 5xx errors: > https://github.com/javaee/jersey-1.x/blob/1.19.3/jersey-client/src/main/java/com/sun/jersey/client/urlconnection/URLConnectionClientHandler.java > Therefore, policy retrieval immediately fails without retry when, for > example, ranger-admin behind a reverse proxy is temporarily unavailable. > It's better to retry GET requests also on HTTP 5xx errors in RangerRESTClient. -- This message was sent by Atlassian Jira (v8.20.10#820010)