aboutsummaryrefslogtreecommitdiff
path: root/exporters
diff options
context:
space:
mode:
authorMarc CARRE <carre.marc@gmail.com>2018-03-24 03:51:35 +0000
committerMarc CARRE <carre.marc@gmail.com>2018-03-24 04:56:26 +0000
commit6c9f7563e89631ecfae796ab4bdf2ee9c6085a26 (patch)
tree6981fad3158632c7a5c1d71eeea74b462438d011 /exporters
parent6293675bc548b209aaad0838f8ea2f86e6cfaad0 (diff)
downloadopencensus-java-6c9f7563e89631ecfae796ab4bdf2ee9c6085a26.tar.gz
Wait for Jaeger to be able to handle HTTP requests, by retrying on unexpected connection reset socket exceptions.
Jaeger seems to accept connections even though it is not yet ready to handle HTTP requests. Without this change, the integration test fails with: ``` io.opencensus.exporter.trace.jaeger.JaegerExporterHandlerIntegrationTest > exportToJaeger FAILED java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:197) at java.net.SocketInputStream.read(SocketInputStream.java:122) at java.io.BufferedInputStream.fill(BufferedInputStream.java:235) at java.io.BufferedInputStream.read1(BufferedInputStream.java:275) at java.io.BufferedInputStream.read(BufferedInputStream.java:334) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:721) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:664) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:692) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1389) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468) at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:37) at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:105) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:981) at io.opencensus.exporter.trace.jaeger.JaegerExporterHandlerIntegrationTest.waitForJaegerToStart(JaegerExporterHandlerIntegrationTest.java:239) at io.opencensus.exporter.trace.jaeger.JaegerExporterHandlerIntegrationTest.exportToJaeger(JaegerExporterHandlerIntegrationTest.java:82) ``` With this change, it logs the above for information/debugging, but carries on, and eventually, suceeds.
Diffstat (limited to 'exporters')
-rw-r--r--exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java b/exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java
index 7884f278..1ebf9327 100644
--- a/exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java
+++ b/exporters/trace/jaeger/src/test/java/io/opencensus/exporter/trace/jaeger/JaegerExporterHandlerIntegrationTest.java
@@ -244,7 +244,7 @@ public class JaegerExporterHandlerIntegrationTest {
logger.log(Level.INFO, "Jaeger is not yet ready, waiting a bit...");
Thread.sleep(10L);
} catch (SocketException e) {
- if (e.getMessage().contains("Unexpected end of file from server")) {
+ if (isRetryableError(e)) {
// Jaeger seems to accept connections even though it is not yet ready to handle HTTP
// requests.
logger.log(Level.INFO, "Jaeger is still not yet ready, waiting a bit more...", e);
@@ -255,4 +255,10 @@ public class JaegerExporterHandlerIntegrationTest {
}
}
}
+
+ private static boolean isRetryableError(final SocketException e) {
+ final String message = e.getMessage();
+ return message.contains("Unexpected end of file from server")
+ || message.contains("Connection reset");
+ }
}