summaryrefslogtreecommitdiffstats
path: root/container-search
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2019-01-16 14:54:34 +0100
committerOlli Virtanen <olli.virtanen@oath.com>2019-01-16 14:54:34 +0100
commitec349f9654f5e50806017f36f01ff73be3798179 (patch)
treeeea1f0da8b6de2c1b3503fc0b39b656185094456 /container-search
parent7260f3ef080bd755bae8441b992526b2ac1cbc39 (diff)
Use the correct error type for timeouts, and only create one error
Diffstat (limited to 'container-search')
-rw-r--r--container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java15
1 files changed, 6 insertions, 9 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java
index d695c108533..925bd5d856b 100644
--- a/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java
+++ b/container-search/src/main/java/com/yahoo/search/dispatch/InterleavedSearchInvoker.java
@@ -21,6 +21,7 @@ import java.util.Set;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
import static com.yahoo.container.handler.Coverage.DEGRADED_BY_ADAPTIVE_TIMEOUT;
import static com.yahoo.container.handler.Coverage.DEGRADED_BY_MATCH_PHASE;
@@ -135,15 +136,11 @@ public class InterleavedSearchInvoker extends SearchInvoker implements ResponseM
}
private void insertTimeoutErrors() {
- for (SearchInvoker invoker : invokers) {
- Optional<Integer> dk = invoker.distributionKey();
- String message;
- if (dk.isPresent()) {
- message = "Backend communication timeout on node with distribution-key " + dk.get();
- } else {
- message = "Backend communication timeout";
- }
- result.hits().addError(ErrorMessage.createBackendCommunicationError(message));
+ if (!invokers.isEmpty()) {
+ String keys = invokers.stream().map(SearchInvoker::distributionKey).map(dk -> dk.map(i -> i.toString()).orElse("(unspecified)"))
+ .collect(Collectors.joining(", "));
+
+ result.hits().addError(ErrorMessage.createTimeout("Backend communication timeout on node with distribution-keys: " + keys));
timedOut = true;
}
}