From 241da9e873d3060762a457ae3e475c27f9214f41 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Mon, 28 Jan 2019 14:47:45 +0100 Subject: Retry in controller if parent host is not yet ready --- .../java/com/yahoo/vespa/config/server/http/HttpErrorResponse.java | 7 ++++++- .../main/java/com/yahoo/vespa/config/server/http/HttpHandler.java | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'configserver') diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpErrorResponse.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpErrorResponse.java index bc06d45b29c..0c443c76679 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpErrorResponse.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpErrorResponse.java @@ -42,7 +42,8 @@ public class HttpErrorResponse extends HttpResponse { NOT_FOUND, OUT_OF_CAPACITY, REQUEST_TIMEOUT, - UNKNOWN_VESPA_VERSION + UNKNOWN_VESPA_VERSION, + PARENT_HOST_NOT_READY } public static HttpErrorResponse notFoundError(String msg) { @@ -85,6 +86,10 @@ public class HttpErrorResponse extends HttpResponse { return new HttpErrorResponse(INTERNAL_SERVER_ERROR, errorCodes.APPLICATION_LOCK_FAILURE.name(), msg); } + public static HttpErrorResponse parentHostNotReady(String msg) { + return new HttpErrorResponse(BAD_REQUEST, errorCodes.PARENT_HOST_NOT_READY.name(), msg); + } + @Override public void render(OutputStream stream) throws IOException { new JsonFormat(true).encode(stream, slime); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpHandler.java index 16dfb4773e8..43ccf8e69e4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/HttpHandler.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.config.server.http; import com.yahoo.config.provision.ApplicationLockException; +import com.yahoo.config.provision.ParentHostNotReadyException; import com.yahoo.container.jdisc.HttpRequest; import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.container.jdisc.LoggingRequestHandler; @@ -61,6 +62,8 @@ public class HttpHandler extends LoggingRequestHandler { return HttpErrorResponse.requestTimeout(getMessage(e, request)); } catch (ApplicationLockException e) { return HttpErrorResponse.applicationLockFailure(getMessage(e, request)); + } catch (ParentHostNotReadyException e) { + return HttpErrorResponse.parentHostNotReady(getMessage(e, request)); } catch (Exception e) { log.log(LogLevel.WARNING, "Unexpected exception handling a config server request", e); return HttpErrorResponse.internalServerError(getMessage(e, request)); -- cgit v1.2.3