aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-10-02 14:31:09 +0200
committerjonmv <venstad@gmail.com>2023-10-02 14:31:09 +0200
commit28bd83e8c7629a0558ca092424fbe8deda879728 (patch)
treee18fb700a5f695e34655cdd408a6546b34a31e62 /container-search/src/main/java/com/yahoo
parent5706d89036798a37025409a70dfdded8c6545a9a (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.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java2
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;