summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorTom <58065733+tomglk@users.noreply.github.com>2024-01-03 20:26:46 +0100
committerGitHub <noreply@github.com>2024-01-03 20:26:46 +0100
commitd9198f2bbaa3790cbd614fc6bbd7b60bd365d602 (patch)
treedd1f3f25f363dae66c49a5b21db384a127d0dcdb /container-search
parent5614a846b5c4d6980a9880577ffa9253a2112ce0 (diff)
parent776ace0650b26fd6ba0e1452c81c139d7554834d (diff)
Merge branch 'vespa-engine:master' into multifield-collapsing
Diffstat (limited to 'container-search')
-rw-r--r--container-search/abi-spec.json1
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java7
-rw-r--r--container-search/src/main/java/com/yahoo/search/result/ErrorMessage.java8
3 files changed, 15 insertions, 1 deletions
diff --git a/container-search/abi-spec.json b/container-search/abi-spec.json
index 80833e3e27c..aedccbee46b 100644
--- a/container-search/abi-spec.json
+++ b/container-search/abi-spec.json
@@ -7802,6 +7802,7 @@
"public static com.yahoo.search.result.ErrorMessage createNotFound(java.lang.String)",
"public static com.yahoo.search.result.ErrorMessage createBadRequest(java.lang.String)",
"public static com.yahoo.search.result.ErrorMessage createInternalServerError(java.lang.String)",
+ "public static com.yahoo.search.result.ErrorMessage createInternalServerError(java.lang.String, java.lang.Throwable)",
"public static com.yahoo.search.result.ErrorMessage createSearchReplyError(java.lang.String)",
"public static com.yahoo.search.result.ErrorMessage createDocsumReplyError(java.lang.String)",
"public void setSource(java.lang.String)",
diff --git a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
index e20c4271fe0..441c4326355 100644
--- a/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
+++ b/container-search/src/main/java/com/yahoo/prelude/cluster/ClusterSearcher.java
@@ -270,7 +270,12 @@ public class ClusterSearcher extends Searcher {
Result result = task.get();
mergedResult.mergeWith(result);
mergedResult.hits().addAll(result.hits().asUnorderedHits());
- } catch (ExecutionException | InterruptedException e) {
+ } catch (ExecutionException e) {
+ mergedResult.hits().addError(ErrorMessage.createInternalServerError("Failed querying '" +
+ query.getModel().getRestrict() + "': " +
+ Exceptions.toMessageString(e),
+ e));
+ } catch (InterruptedException e) {
mergedResult.hits().addError(ErrorMessage.createInternalServerError("Failed querying '" +
query.getModel().getRestrict() + "': " +
Exceptions.toMessageString(e)));
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 a6f57aa866a..503bbd725c3 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
@@ -163,6 +163,14 @@ public class ErrorMessage extends com.yahoo.processing.request.ErrorMessage {
return new ErrorMessage(INTERNAL_SERVER_ERROR.code, "Internal server error.", detailedMessage);
}
+ /**
+ * Creates an error analog to HTTP internal server error. If this error is present, a
+ * HTTP layer will return 500.
+ */
+ public static ErrorMessage createInternalServerError(String detailedMessage, Throwable cause) {
+ return new ErrorMessage(INTERNAL_SERVER_ERROR.code, "Internal server error.", detailedMessage, cause);
+ }
+
/** Wraps an error message received in a SearchReply packet */
public static ErrorMessage createSearchReplyError(String detailedMessage) {
return new ErrorMessage(RESULT_HAS_ERRORS.code, "Error in search reply.", detailedMessage);