From 1d75ff63243aef1e304ae40e64bbad255847dc3a Mon Sep 17 00:00:00 2001 From: Luca Abbati Date: Wed, 8 May 2019 16:49:47 +0200 Subject: [PATCH 01/11] Enable JMXFetch by default --- dd-trace-api/src/main/java/datadog/trace/api/Config.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-api/src/main/java/datadog/trace/api/Config.java b/dd-trace-api/src/main/java/datadog/trace/api/Config.java index 79208a032b..a8a0bc6255 100644 --- a/dd-trace-api/src/main/java/datadog/trace/api/Config.java +++ b/dd-trace-api/src/main/java/datadog/trace/api/Config.java @@ -96,7 +96,7 @@ public class Config { private static final int DEFAULT_PARTIAL_FLUSH_MIN_SPANS = 1000; private static final String DEFAULT_PROPAGATION_STYLE_EXTRACT = PropagationStyle.DATADOG.name(); private static final String DEFAULT_PROPAGATION_STYLE_INJECT = PropagationStyle.DATADOG.name(); - private static final boolean DEFAULT_JMX_FETCH_ENABLED = false; + private static final boolean DEFAULT_JMX_FETCH_ENABLED = true; public static final int DEFAULT_JMX_FETCH_STATSD_PORT = 8125; From 440cb0e3d9c9d15ad831f24c96a38daa6d0e49bb Mon Sep 17 00:00:00 2001 From: Luca Abbati Date: Thu, 9 May 2019 11:13:24 +0200 Subject: [PATCH 02/11] Verify JmxFetch is enabled by default --- .../src/test/groovy/datadog/trace/api/ConfigTest.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy index 1ca064b5e1..2c3a216983 100644 --- a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy +++ b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy @@ -81,7 +81,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == true config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG] config.propagationStylesToInject.toList() == [Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == false + config.jmxFetchEnabled == true config.jmxFetchMetricsConfigs == [] config.jmxFetchCheckPeriod == null config.jmxFetchRefreshBeansPeriod == null From cd0afa947cff8c8313a472567952c315608134ca Mon Sep 17 00:00:00 2001 From: Luca Abbati Date: Thu, 9 May 2019 12:19:23 +0200 Subject: [PATCH 03/11] Test that JMX fetch enabling by default can be overwritten --- .../src/test/groovy/datadog/trace/api/ConfigTest.groovy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy index 2c3a216983..15a50c9c7e 100644 --- a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy +++ b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy @@ -121,7 +121,7 @@ class ConfigTest extends Specification { prop.setProperty(RUNTIME_CONTEXT_FIELD_INJECTION, "false") prop.setProperty(PROPAGATION_STYLE_EXTRACT, "Datadog, B3") prop.setProperty(PROPAGATION_STYLE_INJECT, "B3, Datadog") - prop.setProperty(JMX_FETCH_ENABLED, "true") + prop.setProperty(JMX_FETCH_ENABLED, "false") prop.setProperty(JMX_FETCH_METRICS_CONFIGS, "/foo.yaml,/bar.yaml") prop.setProperty(JMX_FETCH_CHECK_PERIOD, "100") prop.setProperty(JMX_FETCH_REFRESH_BEANS_PERIOD, "200") @@ -151,7 +151,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == false config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG, Config.PropagationStyle.B3] config.propagationStylesToInject.toList() == [Config.PropagationStyle.B3, Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == true + config.jmxFetchEnabled == false config.jmxFetchMetricsConfigs == ["/foo.yaml", "/bar.yaml"] config.jmxFetchCheckPeriod == 100 config.jmxFetchRefreshBeansPeriod == 200 @@ -182,7 +182,7 @@ class ConfigTest extends Specification { System.setProperty(PREFIX + RUNTIME_CONTEXT_FIELD_INJECTION, "false") System.setProperty(PREFIX + PROPAGATION_STYLE_EXTRACT, "Datadog, B3") System.setProperty(PREFIX + PROPAGATION_STYLE_INJECT, "B3, Datadog") - System.setProperty(PREFIX + JMX_FETCH_ENABLED, "true") + System.setProperty(PREFIX + JMX_FETCH_ENABLED, "false") System.setProperty(PREFIX + JMX_FETCH_METRICS_CONFIGS, "/foo.yaml,/bar.yaml") System.setProperty(PREFIX + JMX_FETCH_CHECK_PERIOD, "100") System.setProperty(PREFIX + JMX_FETCH_REFRESH_BEANS_PERIOD, "200") @@ -212,7 +212,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == false config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG, Config.PropagationStyle.B3] config.propagationStylesToInject.toList() == [Config.PropagationStyle.B3, Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == true + config.jmxFetchEnabled == false config.jmxFetchMetricsConfigs == ["/foo.yaml", "/bar.yaml"] config.jmxFetchCheckPeriod == 100 config.jmxFetchRefreshBeansPeriod == 200 From 55d7c2a6f554757897d2120d1d0cde8703518e77 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Thu, 16 May 2019 13:55:47 -0400 Subject: [PATCH 04/11] Do not send headers to old kafka servers Kafka message bundles with versions below 2 (e.d. 0.10) do not support headers so do not inject them. Otherwise client gets really upset. This is how similar check is being done in Kafka client itself: https://github.com/apache/kafka/blob/05fcfde8f69b0349216553f711fdfc3f0259c601/clients/src/main/java/org/apache/kafka/common/record/MemoryRecordsBuilder.java#L411-L412 --- .../KafkaProducerInstrumentation.java | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java index 4e29178577..4fb2334859 100644 --- a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java +++ b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java @@ -17,9 +17,11 @@ import net.bytebuddy.asm.Advice; import net.bytebuddy.description.method.MethodDescription; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.matcher.ElementMatcher; +import org.apache.kafka.clients.ApiVersions; import org.apache.kafka.clients.producer.Callback; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.kafka.clients.producer.RecordMetadata; +import org.apache.kafka.common.record.RecordBatch; @AutoService(Instrumenter.class) public final class KafkaProducerInstrumentation extends Instrumenter.Default { @@ -61,6 +63,7 @@ public final class KafkaProducerInstrumentation extends Instrumenter.Default { @Advice.OnMethodEnter(suppress = Throwable.class) public static Scope startSpan( + @Advice.FieldValue("apiVersions") final ApiVersions apiVersions, @Advice.Argument(value = 0, readOnly = false) ProducerRecord record, @Advice.Argument(value = 1, readOnly = false) Callback callback) { final Scope scope = GlobalTracer.get().buildSpan("kafka.produce").startActive(false); @@ -69,28 +72,31 @@ public final class KafkaProducerInstrumentation extends Instrumenter.Default { callback = new ProducerCallback(callback, scope); - try { - GlobalTracer.get() - .inject( - scope.span().context(), - Format.Builtin.TEXT_MAP, - new TextMapInjectAdapter(record.headers())); - } catch (final IllegalStateException e) { - // headers must be read-only from reused record. try again with new one. - record = - new ProducerRecord<>( - record.topic(), - record.partition(), - record.timestamp(), - record.key(), - record.value(), - record.headers()); + // Do not inject headers for batch versions below 2 + if (apiVersions.maxUsableProduceMagic() >= RecordBatch.MAGIC_VALUE_V2) { + try { + GlobalTracer.get() + .inject( + scope.span().context(), + Format.Builtin.TEXT_MAP, + new TextMapInjectAdapter(record.headers())); + } catch (final IllegalStateException e) { + // headers must be read-only from reused record. try again with new one. + record = + new ProducerRecord<>( + record.topic(), + record.partition(), + record.timestamp(), + record.key(), + record.value(), + record.headers()); - GlobalTracer.get() - .inject( - scope.span().context(), - Format.Builtin.TEXT_MAP, - new TextMapInjectAdapter(record.headers())); + GlobalTracer.get() + .inject( + scope.span().context(), + Format.Builtin.TEXT_MAP, + new TextMapInjectAdapter(record.headers())); + } } return scope; From 04392bf28e0bd1e48a2cbf3340f04f0f13371502 Mon Sep 17 00:00:00 2001 From: Luca Abbati Date: Fri, 17 May 2019 17:02:58 +0200 Subject: [PATCH 05/11] Revert "Enable JMXFetch by default" --- .../src/main/java/datadog/trace/api/Config.java | 2 +- .../test/groovy/datadog/trace/api/ConfigTest.groovy | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dd-trace-api/src/main/java/datadog/trace/api/Config.java b/dd-trace-api/src/main/java/datadog/trace/api/Config.java index 595f9f2f18..9992f041f6 100644 --- a/dd-trace-api/src/main/java/datadog/trace/api/Config.java +++ b/dd-trace-api/src/main/java/datadog/trace/api/Config.java @@ -97,7 +97,7 @@ public class Config { private static final int DEFAULT_PARTIAL_FLUSH_MIN_SPANS = 1000; private static final String DEFAULT_PROPAGATION_STYLE_EXTRACT = PropagationStyle.DATADOG.name(); private static final String DEFAULT_PROPAGATION_STYLE_INJECT = PropagationStyle.DATADOG.name(); - private static final boolean DEFAULT_JMX_FETCH_ENABLED = true; + private static final boolean DEFAULT_JMX_FETCH_ENABLED = false; public static final int DEFAULT_JMX_FETCH_STATSD_PORT = 8125; diff --git a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy index 15a50c9c7e..1ca064b5e1 100644 --- a/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy +++ b/dd-trace-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy @@ -81,7 +81,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == true config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG] config.propagationStylesToInject.toList() == [Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == true + config.jmxFetchEnabled == false config.jmxFetchMetricsConfigs == [] config.jmxFetchCheckPeriod == null config.jmxFetchRefreshBeansPeriod == null @@ -121,7 +121,7 @@ class ConfigTest extends Specification { prop.setProperty(RUNTIME_CONTEXT_FIELD_INJECTION, "false") prop.setProperty(PROPAGATION_STYLE_EXTRACT, "Datadog, B3") prop.setProperty(PROPAGATION_STYLE_INJECT, "B3, Datadog") - prop.setProperty(JMX_FETCH_ENABLED, "false") + prop.setProperty(JMX_FETCH_ENABLED, "true") prop.setProperty(JMX_FETCH_METRICS_CONFIGS, "/foo.yaml,/bar.yaml") prop.setProperty(JMX_FETCH_CHECK_PERIOD, "100") prop.setProperty(JMX_FETCH_REFRESH_BEANS_PERIOD, "200") @@ -151,7 +151,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == false config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG, Config.PropagationStyle.B3] config.propagationStylesToInject.toList() == [Config.PropagationStyle.B3, Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == false + config.jmxFetchEnabled == true config.jmxFetchMetricsConfigs == ["/foo.yaml", "/bar.yaml"] config.jmxFetchCheckPeriod == 100 config.jmxFetchRefreshBeansPeriod == 200 @@ -182,7 +182,7 @@ class ConfigTest extends Specification { System.setProperty(PREFIX + RUNTIME_CONTEXT_FIELD_INJECTION, "false") System.setProperty(PREFIX + PROPAGATION_STYLE_EXTRACT, "Datadog, B3") System.setProperty(PREFIX + PROPAGATION_STYLE_INJECT, "B3, Datadog") - System.setProperty(PREFIX + JMX_FETCH_ENABLED, "false") + System.setProperty(PREFIX + JMX_FETCH_ENABLED, "true") System.setProperty(PREFIX + JMX_FETCH_METRICS_CONFIGS, "/foo.yaml,/bar.yaml") System.setProperty(PREFIX + JMX_FETCH_CHECK_PERIOD, "100") System.setProperty(PREFIX + JMX_FETCH_REFRESH_BEANS_PERIOD, "200") @@ -212,7 +212,7 @@ class ConfigTest extends Specification { config.runtimeContextFieldInjection == false config.propagationStylesToExtract.toList() == [Config.PropagationStyle.DATADOG, Config.PropagationStyle.B3] config.propagationStylesToInject.toList() == [Config.PropagationStyle.B3, Config.PropagationStyle.DATADOG] - config.jmxFetchEnabled == false + config.jmxFetchEnabled == true config.jmxFetchMetricsConfigs == ["/foo.yaml", "/bar.yaml"] config.jmxFetchCheckPeriod == 100 config.jmxFetchRefreshBeansPeriod == 200 From 387f0946173ae0f799f36f19f30af2234a3e3a36 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 17 May 2019 11:19:24 -0400 Subject: [PATCH 06/11] Ignore flaky apache-http-aync test --- .../groovy/ApacheHttpAsyncClientNullCallbackTest.groovy | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy index 2015e4956e..dc614c25a0 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy @@ -3,11 +3,19 @@ import datadog.trace.instrumentation.apachehttpasyncclient.ApacheHttpAsyncClient import org.apache.http.client.methods.HttpGet import org.apache.http.impl.nio.client.HttpAsyncClients import org.apache.http.message.BasicHeader +import org.junit.Ignore import spock.lang.AutoCleanup import spock.lang.Shared import java.util.concurrent.Future +/** + * TODO: we would like not to ugnore this test, but currently this test is flaky + * The problem is that http-request span is closed asynchronously and when we provide no callback (like 39) + * we cannot synchronise on when it is closed. Possible soltion here would be to rewrite this to not run + * tests will callbacks somehow because they make no sense in 'fire-and-forget' scenarios. + */ +@Ignore class ApacheHttpAsyncClientNullCallbackTest extends HttpClientTest { @AutoCleanup From c02110a2a1d4847054f145ed2a2dbceb84844b19 Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 17 May 2019 11:10:12 -0400 Subject: [PATCH 07/11] Add comment explaining Kafka versions limitations check --- .../kafka_clients/KafkaProducerInstrumentation.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java index 4fb2334859..a0c8d7f4c1 100644 --- a/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java +++ b/dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/KafkaProducerInstrumentation.java @@ -73,6 +73,8 @@ public final class KafkaProducerInstrumentation extends Instrumenter.Default { callback = new ProducerCallback(callback, scope); // Do not inject headers for batch versions below 2 + // This is how similar check is being done in Kafka client itself: + // https://github.com/apache/kafka/blob/05fcfde8f69b0349216553f711fdfc3f0259c601/clients/src/main/java/org/apache/kafka/common/record/MemoryRecordsBuilder.java#L411-L412 if (apiVersions.maxUsableProduceMagic() >= RecordBatch.MAGIC_VALUE_V2) { try { GlobalTracer.get() From d01832a94d2220653b95bdcf85cb46ae49c3910c Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 17 May 2019 11:27:35 -0400 Subject: [PATCH 08/11] Do not try to build against couchbase 2.7.5 since it didn't sync up with mirrors yet --- .../instrumentation/couchbase-2.0/couchbase-2.0.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle index f7d0d30511..626c31c93c 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle +++ b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle @@ -46,6 +46,8 @@ dependencies { testCompile group: 'com.couchbase.client', name: 'java-client', version: '2.5.0' latestDepTestCompile group: 'org.springframework.data', name: 'spring-data-couchbase', version: '3.+' - latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '2.6+' + // Looks like 2.7.5 was just released and didn't sync up with mirrors properly causing build failures + // TODO: remove this on a few days. + latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '[2.6, 2.7.4]' latestDepTestCompile group: 'com.couchbase.client', name: 'encryption', version: '+' } From b6ba1997ae92283c58a84b73486816496e83d620 Mon Sep 17 00:00:00 2001 From: Tyler Benson Date: Fri, 17 May 2019 09:32:15 -0700 Subject: [PATCH 09/11] Add constraint for muzzle too --- .circleci/config.yml | 2 +- .../couchbase-2.0/couchbase-2.0.gradle | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 16c3a22e65..f72cd345f7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -25,7 +25,7 @@ jobs: - run: name: Build Project - command: GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx1G -Xms64M' -Ddatadog.forkedMaxHeapSize=1G -Ddatadog.forkedMinHeapSize=64M" ./gradlew clean :dd-java-agent:shadowJar compileTestGroovy compileTestScala compileTestJava --build-cache --parallel --stacktrace --no-daemon --max-workers=8 + command: GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx1G -Xms64M' -Ddatadog.forkedMaxHeapSize=1G -Ddatadog.forkedMinHeapSize=64M" ./gradlew clean :dd-java-agent:shadowJar compileTestGroovy compileLatestDepTestGroovy compileTestScala compileLatestDepTestScala compileTestJava compileLatestDepTestJava --build-cache --parallel --stacktrace --no-daemon --max-workers=8 - run: name: Collect Libs diff --git a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle index 626c31c93c..0464466482 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle +++ b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle @@ -17,8 +17,15 @@ muzzle { pass { group = 'com.couchbase.client' module = 'java-client' - versions = "[2.0.0,)" - assertInverse = true + // Looks like 2.7.5 was just released and didn't sync up with mirrors properly causing build failures + // TODO: remove this on a few days. + versions = "[2.0.0,2.7.5)" +// assertInverse = true + } + fail { + group = 'com.couchbase.client' + module = 'java-client' + versions = "(,2.0.0)" } fail { group = 'com.couchbase.client' From e52c654fd1f57682fa6ba97b65e0d99a6baf3a1a Mon Sep 17 00:00:00 2001 From: Nikolay Martynov Date: Fri, 17 May 2019 12:46:36 -0400 Subject: [PATCH 10/11] Wait for span to finish instead of ignoring test --- .../ApacheHttpAsyncClientNullCallbackTest.groovy | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy index dc614c25a0..ea8e04521b 100644 --- a/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy +++ b/dd-java-agent/instrumentation/apache-httpasyncclient-4/src/test/groovy/ApacheHttpAsyncClientNullCallbackTest.groovy @@ -1,21 +1,14 @@ import datadog.trace.agent.test.base.HttpClientTest import datadog.trace.instrumentation.apachehttpasyncclient.ApacheHttpAsyncClientDecorator +import io.opentracing.util.GlobalTracer import org.apache.http.client.methods.HttpGet import org.apache.http.impl.nio.client.HttpAsyncClients import org.apache.http.message.BasicHeader -import org.junit.Ignore import spock.lang.AutoCleanup import spock.lang.Shared import java.util.concurrent.Future -/** - * TODO: we would like not to ugnore this test, but currently this test is flaky - * The problem is that http-request span is closed asynchronously and when we provide no callback (like 39) - * we cannot synchronise on when it is closed. Possible soltion here would be to rewrite this to not run - * tests will callbacks somehow because they make no sense in 'fire-and-forget' scenarios. - */ -@Ignore class ApacheHttpAsyncClientNullCallbackTest extends HttpClientTest { @AutoCleanup @@ -41,6 +34,10 @@ class ApacheHttpAsyncClientNullCallbackTest extends HttpClientTest Date: Fri, 17 May 2019 09:47:54 -0700 Subject: [PATCH 11/11] =?UTF-8?q?Try=20again=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../instrumentation/couchbase-2.0/couchbase-2.0.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle index 0464466482..15960d93d8 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle +++ b/dd-java-agent/instrumentation/couchbase-2.0/couchbase-2.0.gradle @@ -55,6 +55,6 @@ dependencies { latestDepTestCompile group: 'org.springframework.data', name: 'spring-data-couchbase', version: '3.+' // Looks like 2.7.5 was just released and didn't sync up with mirrors properly causing build failures // TODO: remove this on a few days. - latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '[2.6, 2.7.4]' - latestDepTestCompile group: 'com.couchbase.client', name: 'encryption', version: '+' + latestDepTestCompile group: 'com.couchbase.client', name: 'java-client', version: '2.7.4' + latestDepTestCompile group: 'com.couchbase.client', name: 'encryption', version: '1.0.0' }