diff options
author | jonmv <venstad@gmail.com> | 2023-10-02 14:31:09 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-10-02 14:31:09 +0200 |
commit | 28bd83e8c7629a0558ca092424fbe8deda879728 (patch) | |
tree | e18fb700a5f695e34655cdd408a6546b34a31e62 /container-search/src/main/java/com/yahoo | |
parent | 5706d89036798a37025409a70dfdded8c6545a9a (diff) |
Check query timeout in SearchHandler
Diffstat (limited to 'container-search/src/main/java/com/yahoo')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java | 3 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index ecce5ddd740..9e60a720020 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -261,6 +261,9 @@ public class SearchHandler extends LoggingRequestHandler { } else if (searchChain == null) { result = new Result(query, ErrorMessage.createInvalidQueryParameter("No search chain named '" + searchChainName + "' was found")); + } else if (query.getTimeLeft() <= 0) { + result = new Result(query, + ErrorMessage.createTimeout("No time left after waiting for " + query.getDurationTime() + "ms to execute query")); } else { String pathAndQuery = UriTools.rawRequest(request.getUri()); result = search(pathAndQuery, query, searchChain); diff --git a/container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java b/container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java index b7f7150f209..10b191cc20f 100644 --- a/container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java +++ b/container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java @@ -114,7 +114,7 @@ public class ErrorMessage extends com.yahoo.processing.request.ErrorMessage { public static final int timeoutCode = Error.TIMEOUT.code; /** Creates an error indicating that a request to a backend timed out. */ public static ErrorMessage createTimeout(String detailedMessage) { - return new ErrorMessage(timeoutCode, "Timed out",detailedMessage); + return new ErrorMessage(timeoutCode, "Timed out", detailedMessage); } public static final int emptyDocsumsCode = Error.EMPTY_DOCUMENTS.code; |