James Chen created KNOX-2095:
--------------------------------

             Summary: Many errors (E.G. 504s) being masked as 500 errors
                 Key: KNOX-2095
                 URL: https://issues.apache.org/jira/browse/KNOX-2095
             Project: Apache Knox
          Issue Type: Improvement
    Affects Versions: 1.2.0
            Reporter: James Chen


When errors occur while accessing the Knox gateway, errors are forcibly 
overridden and represented as 500 errors, rather than whatever errors they 
should be.

For example, when the timeout value under gateway.httpclient.socketTimeout is 
set to a very low timeout value (E.G. 1 ms) under gateway-site.xml, a socket 
timeout exception is produced by the getHttpClient().execute( outboundRequest) 
call. However, this is caught by the surrounding try-catch block and thrown 
again as an IOException. This results in a generic 500 error, rather than a 504 
error one would normally expect from this sort of interaction.

 

For these sorts of scenarios, I believe it would be prudent to create a dummy 
HttpResponse using a HttpResponseFactory object for the inboundResponse with 
the corresponding error code (E.G. HttpStatus.SC_GATEWAY_TIMEOUT in the event 
of a SocketTimeoutException) and return that instead to trigger the appropriate 
504 error. I suspect there are other sorts of potential error code triggers 
that get this same IOException treatment that would be better off receiving 
their own error codes.

 

Judging from the source code, this issue likely affects version 1.3.0, though 
this has not been tested.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to