diff options
author | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-09-21 17:41:07 +0200 |
---|---|---|
committer | Tor Brede Vekterli <vekterli@yahoo-inc.com> | 2017-09-25 16:05:23 +0200 |
commit | 8c6befb4a9fb5357d33208631cc15989dab771f7 (patch) | |
tree | 9501dda9ae920968e0a109a0922a45b3833c16aa /clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java | |
parent | debb34547c76429e8a345299e4765824903f784c (diff) |
Add configurable deadline for cluster controller tasks
Prevents an unstable cluster from potentially holding up all
container request processing threads indefinitely.
Deadline errors are translated into HTTP 504 errors to REST API clients.
Diffstat (limited to 'clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java')
-rw-r--r-- | clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java index 395958063f5..71e6bc36de1 100644 --- a/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java +++ b/clustercontroller-utils/src/main/java/com/yahoo/vespa/clustercontroller/utils/staterestapi/server/RestApiHandler.java @@ -89,6 +89,12 @@ public class RestApiHandler implements HttpRequestHandler { result.setHttpCode(503, "Service Unavailable"); result.setJson(jsonWriter.createErrorJson(exception.getMessage())); return result; + } catch (DeadlineExceededException exception) { + logRequestException(request, exception, Level.WARNING); + JsonHttpResult result = new JsonHttpResult(); + result.setHttpCode(504, "Gateway Timeout"); + result.setJson(jsonWriter.createErrorJson(exception.getMessage())); + return result; } catch (StateRestApiException exception) { logRequestException(request, exception, Level.WARNING); JsonHttpResult result = new JsonHttpResult(); |