From ec349f9654f5e50806017f36f01ff73be3798179 Mon Sep 17 00:00:00 2001 From: Olli Virtanen Date: Wed, 16 Jan 2019 14:54:34 +0100 Subject: Use the correct error type for timeouts, and only create one error --- .../yahoo/search/dispatch/InterleavedSearchInvoker.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'container-search/src/main/java/com/yahoo/search/dispatch') 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 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; } } -- cgit v1.2.3