summaryrefslogtreecommitdiffstats
path: root/container-search/src
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@vespa.ai>2024-01-03 10:47:54 +0100
committerJon Bratseth <bratseth@vespa.ai>2024-01-03 10:47:54 +0100
commitb72a5da7fabc718c489264492abd2d48fc9a046e (patch)
tree67b8fe2196b3f96db1103d9fc01b0db30ae6812b /container-search/src
parent4847f5bef9d516ab0d8887a9b59b5e1426a00ae2 (diff)
Keep stack trace no execution exception
Diffstat (limited to 'container-search/src')
-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
2 files changed, 14 insertions, 1 deletions
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);