diff options
author | Olli Virtanen <olli.virtanen@oath.com> | 2019-03-22 09:51:14 +0100 |
---|---|---|
committer | Olli Virtanen <olli.virtanen@oath.com> | 2019-03-22 09:51:14 +0100 |
commit | 37bf79fdedacad3b46796667e29d86a302f98fc0 (patch) | |
tree | e6024f6cdb1aaaa3ee5f888aef3da8473c5cd926 /container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java | |
parent | 519d59334ca8c3e314e71f83de618e375a7c2d6c (diff) |
Report partial group connection failures through trace, not error
Diffstat (limited to 'container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java')
-rw-r--r-- | container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java index 8c5976a2815..f84f35020d2 100644 --- a/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java +++ b/container-search/src/test/java/com/yahoo/search/dispatch/InterleavedSearchInvokerTest.java @@ -15,8 +15,10 @@ import java.time.Instant; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; +import java.util.stream.StreamSupport; import static com.yahoo.container.handler.Coverage.DEGRADED_BY_MATCH_PHASE; import static com.yahoo.container.handler.Coverage.DEGRADED_BY_TIMEOUT; @@ -25,7 +27,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -64,7 +66,9 @@ public class InterleavedSearchInvokerTest { Result result = invoker.search(query, null, null); assertTrue("All test scenario events processed", expectedEvents.isEmpty()); - assertNotNull("Result is marked as an error", result.hits().getErrorHit()); + assertNull("Result is not marked as an error", result.hits().getErrorHit()); + var message = findTrace(result, "Backend communication timeout"); + assertThat("Timeout should be reported in a trace message", message.isPresent()); assertTrue("Degradation reason is a normal timeout", result.getCoverage(false).isDegradedByTimeout()); } @@ -81,7 +85,9 @@ public class InterleavedSearchInvokerTest { Result result = invoker.search(query, null, null); assertTrue("All test scenario events processed", expectedEvents.isEmpty()); - assertNotNull("Result is marked as an error", result.hits().getErrorHit()); + assertNull("Result is not marked as an error", result.hits().getErrorHit()); + var message = findTrace(result, "Backend communication timeout"); + assertThat("Timeout should be reported in a trace message", message.isPresent()); assertTrue("Degradataion reason is an adaptive timeout", result.getCoverage(false).isDegradedByAdapativeTimeout()); } @@ -203,7 +209,7 @@ public class InterleavedSearchInvokerTest { invokers.add(new MockInvoker(i)); } - return new InterleavedSearchInvoker(invokers, null, searchCluster) { + return new InterleavedSearchInvoker(invokers, null, searchCluster, null) { @Override protected long currentTime() { return clock.millis(); @@ -235,6 +241,11 @@ public class InterleavedSearchInvokerTest { return coverage; } + private static Optional<String> findTrace(Result result, String prefix) { + var strings = result.getQuery().getContext(false).getTrace().traceNode().descendants(String.class).spliterator(); + return StreamSupport.stream(strings, false).filter(s -> s.startsWith(prefix)).findFirst(); + } + private class Event { Long expectedTimeout; long delay; @@ -270,6 +281,7 @@ public class InterleavedSearchInvokerTest { public TestQuery() { super(); setTimeout(5000); + setTraceLevel(5); } @Override |