[ https://issues.apache.org/jira/browse/KNOX-2890?focusedWorklogId=852696&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-852696 ]
ASF GitHub Bot logged work on KNOX-2890: ---------------------------------------- Author: ASF GitHub Bot Created on: 23/Mar/23 21:14 Start Date: 23/Mar/23 21:14 Worklog Time Spent: 10m Work Description: pzampino commented on code in PR #742: URL: https://github.com/apache/knox/pull/742#discussion_r1146864881 ########## gateway-service-webhdfs/src/main/java/org/apache/knox/gateway/hdfs/dispatch/AbstractHdfsHaDispatch.java: ########## @@ -59,33 +59,19 @@ protected void executeRequest(HttpUriRequest outboundRequest, HttpServletRequest try { inboundResponse = executeOutboundRequest(outboundRequest); writeOutboundResponse(outboundRequest, inboundRequest, outboundResponse, inboundResponse); - } catch (StandbyException e) { + } catch (StandbyException | SafeModeException | IOException e) { /* if non-idempotent requests are not allowed to failover */ - if(!failoverNonIdempotentRequestEnabled && idempotentRequests.stream().anyMatch(outboundRequest.getMethod()::equalsIgnoreCase)) { - LOG.cannotFailoverToNonIdempotentRequest(outboundRequest.getMethod()); + if(!failoverNonIdempotentRequestEnabled && nonIdempotentRequests.stream().anyMatch(outboundRequest.getMethod()::equalsIgnoreCase)) { + LOG.cannotFailoverNonIdempotentRequest(outboundRequest.getMethod(), e.toString()); throw e; } else { - LOG.errorReceivedFromStandbyNode(e); - failoverRequest(outboundRequest, inboundRequest, outboundResponse, - inboundResponse, e); - } - } catch (SafeModeException e) { - /* if non-idempotent requests are not allowed to failover */ - if(!failoverNonIdempotentRequestEnabled && idempotentRequests.stream().anyMatch(outboundRequest.getMethod()::equalsIgnoreCase)) { - LOG.cannotFailoverToNonIdempotentRequest(outboundRequest.getMethod()); - throw e; - } else { - LOG.errorReceivedFromSafeModeNode(e); - failoverRequest(outboundRequest, inboundRequest, outboundResponse, - inboundResponse, e); - } - } catch (IOException e) { - /* if non-idempotent requests are not allowed to failover */ - if(!failoverNonIdempotentRequestEnabled && idempotentRequests.stream().anyMatch(outboundRequest.getMethod()::equalsIgnoreCase)) { - LOG.cannotFailoverToNonIdempotentRequest(outboundRequest.getMethod()); - throw e; - } else { - LOG.errorConnectingToServer(outboundRequest.getURI().toString(), e); + if(e instanceof StandbyException) { Review Comment: Did we lose the failoverRequest invocation here? Issue Time Tracking ------------------- Worklog Id: (was: 852696) Time Spent: 2h 10m (was: 2h) > When client-knox connection is broken knox should not retry the same client > request > ----------------------------------------------------------------------------------- > > Key: KNOX-2890 > URL: https://issues.apache.org/jira/browse/KNOX-2890 > Project: Apache Knox > Issue Type: Bug > Components: Server > Affects Versions: 2.0..0 > Reporter: J.Andreina > Assignee: Sandeep More > Priority: Major > Fix For: 2.1.0 > > Time Spent: 2h 10m > Remaining Estimate: 0h > > Knox should not be retrying non idempotent requests like POST, PATCH etc. -- This message was sent by Atlassian Jira (v8.20.10#820010)