From e8d6928a8cf2baf8575b110a3d7051d96fe6f773 Mon Sep 17 00:00:00 2001 From: Laplie Anderson Date: Thu, 12 Sep 2019 21:48:36 -0400 Subject: [PATCH] Dont share environment. Slower but more deterministic --- .../groovy/CouchbaseAsyncClientTest.groovy | 31 ++++++++++--------- .../test/groovy/CouchbaseClientTest.groovy | 25 ++++++++------- .../CouchbaseSpringRepositoryTest.groovy | 6 ++-- .../CouchbaseSpringTemplateTest.groovy | 17 +++++++--- .../groovy/util/AbstractCouchbaseTest.groovy | 11 +------ 5 files changed, 49 insertions(+), 41 deletions(-) diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseAsyncClientTest.groovy b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseAsyncClientTest.groovy index 0c79367f0a..fe0bc662ee 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseAsyncClientTest.groovy +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseAsyncClientTest.groovy @@ -2,6 +2,7 @@ import com.couchbase.client.java.AsyncCluster import com.couchbase.client.java.CouchbaseAsyncCluster import com.couchbase.client.java.document.JsonDocument import com.couchbase.client.java.document.json.JsonObject +import com.couchbase.client.java.env.CouchbaseEnvironment import com.couchbase.client.java.query.N1qlQuery import spock.util.concurrent.BlockingVariable import util.AbstractCouchbaseTest @@ -31,13 +32,13 @@ class CouchbaseAsyncClientTest extends AbstractCouchbaseTest { } cleanup: - cluster?.disconnect()?.timeout(5, TimeUnit.SECONDS)?.toBlocking()?.single() + cluster?.disconnect()?.timeout(10, TimeUnit.SECONDS)?.toBlocking()?.single() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseAsyncCluster.create(environment, Arrays.asList("127.0.0.1")) manager = cluster.clusterManager(USERNAME, PASSWORD).toBlocking().single() type = bucketSettings.type().name() @@ -71,13 +72,13 @@ class CouchbaseAsyncClientTest extends AbstractCouchbaseTest { } cleanup: - cluster?.disconnect()?.timeout(5, TimeUnit.SECONDS)?.toBlocking()?.single() + cluster?.disconnect()?.timeout(10, TimeUnit.SECONDS)?.toBlocking()?.single() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseAsyncCluster.create(environment, Arrays.asList("127.0.0.1")) type = bucketSettings.type().name() } @@ -119,13 +120,13 @@ class CouchbaseAsyncClientTest extends AbstractCouchbaseTest { } cleanup: - cluster?.disconnect()?.timeout(5, TimeUnit.SECONDS)?.toBlocking()?.single() + cluster?.disconnect()?.timeout(10, TimeUnit.SECONDS)?.toBlocking()?.single() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseAsyncCluster.create(environment, Arrays.asList("127.0.0.1")) type = bucketSettings.type().name() } @@ -133,7 +134,8 @@ class CouchbaseAsyncClientTest extends AbstractCouchbaseTest { def "test query"() { setup: // Only couchbase buckets support queries. - AsyncCluster cluster = CouchbaseAsyncCluster.create(couchbaseEnvironment, Arrays.asList("127.0.0.1")) + CouchbaseEnvironment environment = envBuilder(bucketCouchbase).build() + AsyncCluster cluster = CouchbaseAsyncCluster.create(environment, Arrays.asList("127.0.0.1")) def queryResult = new BlockingVariable() when: @@ -164,6 +166,7 @@ class CouchbaseAsyncClientTest extends AbstractCouchbaseTest { } cleanup: - cluster?.disconnect()?.timeout(5, TimeUnit.SECONDS)?.toBlocking()?.single() + cluster?.disconnect()?.timeout(10, TimeUnit.SECONDS)?.toBlocking()?.single() + environment.shutdown() } } diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseClientTest.groovy b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseClientTest.groovy index 284f3083a0..62f901b6f1 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseClientTest.groovy +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/CouchbaseClientTest.groovy @@ -3,6 +3,7 @@ import com.couchbase.client.java.Cluster import com.couchbase.client.java.CouchbaseCluster import com.couchbase.client.java.document.JsonDocument import com.couchbase.client.java.document.json.JsonObject +import com.couchbase.client.java.env.CouchbaseEnvironment import com.couchbase.client.java.query.N1qlQuery import util.AbstractCouchbaseTest @@ -24,12 +25,12 @@ class CouchbaseClientTest extends AbstractCouchbaseTest { cleanup: cluster?.disconnect() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseCluster.create(environment, Arrays.asList("127.0.0.1")) manager = cluster.clusterManager(USERNAME, PASSWORD) type = bucketSettings.type().name() @@ -63,12 +64,12 @@ class CouchbaseClientTest extends AbstractCouchbaseTest { cleanup: cluster?.disconnect() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseCluster.create(environment, Arrays.asList("127.0.0.1")) type = bucketSettings.type().name() } @@ -108,20 +109,21 @@ class CouchbaseClientTest extends AbstractCouchbaseTest { cleanup: cluster?.disconnect() + environment.shutdown() where: - environment | bucketSettings - couchbaseEnvironment | bucketCouchbase - memcacheEnvironment | bucketMemcache + bucketSettings << [bucketCouchbase, bucketMemcache] + environment = envBuilder(bucketSettings).build() cluster = CouchbaseCluster.create(environment, Arrays.asList("127.0.0.1")) type = bucketSettings.type().name() } - + def "test query"() { setup: // Only couchbase buckets support queries. - Cluster cluster = CouchbaseCluster.create(couchbaseEnvironment, Arrays.asList("127.0.0.1")) + CouchbaseEnvironment environment = envBuilder(bucketCouchbase).build() + Cluster cluster = CouchbaseCluster.create(environment, Arrays.asList("127.0.0.1")) Bucket bkt = cluster.openBucket(bucketCouchbase.name(), bucketCouchbase.password()) when: @@ -146,5 +148,6 @@ class CouchbaseClientTest extends AbstractCouchbaseTest { cleanup: cluster?.disconnect() + environment.shutdown() } } diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy index e3b90d35bc..19c210f368 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringRepositoryTest.groovy @@ -2,6 +2,7 @@ package springdata import com.couchbase.client.java.Cluster import com.couchbase.client.java.CouchbaseCluster +import com.couchbase.client.java.env.CouchbaseEnvironment import com.couchbase.client.java.view.DefaultView import com.couchbase.client.java.view.DesignDocument import org.springframework.context.ConfigurableApplicationContext @@ -31,7 +32,8 @@ class CouchbaseSpringRepositoryTest extends AbstractCouchbaseTest { DocRepository repo def setupSpec() { - Cluster couchbaseCluster = CouchbaseCluster.create(memcacheEnvironment, Arrays.asList("127.0.0.1")) + CouchbaseEnvironment environment = envBuilder(bucketCouchbase).build() + Cluster couchbaseCluster = CouchbaseCluster.create(environment, Arrays.asList("127.0.0.1")) // Create view for SpringRepository's findAll() couchbaseCluster.openBucket(bucketCouchbase.name(), bucketCouchbase.password()).bucketManager() @@ -46,7 +48,7 @@ class CouchbaseSpringRepositoryTest extends AbstractCouchbaseTest { '''.stripIndent() ))) ) - CouchbaseConfig.setEnvironment(couchbaseEnvironment) + CouchbaseConfig.setEnvironment(environment) CouchbaseConfig.setBucketSettings(bucketCouchbase) // Close all buckets and disconnect diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringTemplateTest.groovy b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringTemplateTest.groovy index bd36700d52..5ec6e6072c 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringTemplateTest.groovy +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/springdata/CouchbaseSpringTemplateTest.groovy @@ -4,12 +4,11 @@ import com.couchbase.client.java.Bucket import com.couchbase.client.java.Cluster import com.couchbase.client.java.CouchbaseCluster import com.couchbase.client.java.cluster.ClusterManager +import com.couchbase.client.java.env.CouchbaseEnvironment import org.springframework.data.couchbase.core.CouchbaseTemplate import spock.lang.Shared import util.AbstractCouchbaseTest -import java.util.concurrent.TimeUnit - class CouchbaseSpringTemplateTest extends AbstractCouchbaseTest { @Shared @@ -20,8 +19,16 @@ class CouchbaseSpringTemplateTest extends AbstractCouchbaseTest { @Shared Cluster memcacheCluster + + @Shared + protected CouchbaseEnvironment couchbaseEnvironment + @Shared + protected CouchbaseEnvironment memcacheEnvironment def setupSpec() { + couchbaseEnvironment = envBuilder(bucketCouchbase).build() + memcacheEnvironment = envBuilder(bucketMemcache).build() + couchbaseCluster = CouchbaseCluster.create(couchbaseEnvironment, Arrays.asList("127.0.0.1")) memcacheCluster = CouchbaseCluster.create(memcacheEnvironment, Arrays.asList("127.0.0.1")) ClusterManager couchbaseManager = couchbaseCluster.clusterManager(USERNAME, PASSWORD) @@ -35,8 +42,10 @@ class CouchbaseSpringTemplateTest extends AbstractCouchbaseTest { } def cleanupSpec() { - couchbaseCluster?.disconnect(5, TimeUnit.SECONDS) - memcacheCluster?.disconnect(5, TimeUnit.SECONDS) + couchbaseCluster?.disconnect() + memcacheCluster?.disconnect() + couchbaseEnvironment.shutdown() + memcacheEnvironment.shutdown() } def "test write #name"() { diff --git a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/util/AbstractCouchbaseTest.groovy b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/util/AbstractCouchbaseTest.groovy index 50a836e584..5f82218d94 100644 --- a/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/util/AbstractCouchbaseTest.groovy +++ b/dd-java-agent/instrumentation/couchbase-2.0/src/test/groovy/util/AbstractCouchbaseTest.groovy @@ -5,7 +5,6 @@ import com.couchbase.client.core.metrics.DefaultMetricsCollectorConfig import com.couchbase.client.java.bucket.BucketType import com.couchbase.client.java.cluster.BucketSettings import com.couchbase.client.java.cluster.DefaultBucketSettings -import com.couchbase.client.java.env.CouchbaseEnvironment import com.couchbase.client.java.env.DefaultCouchbaseEnvironment import com.couchbase.mock.Bucket import com.couchbase.mock.BucketConfiguration @@ -57,11 +56,6 @@ abstract class AbstractCouchbaseTest extends AgentTestRunner { @Shared CouchbaseMock mock - @Shared - protected CouchbaseEnvironment couchbaseEnvironment - @Shared - protected CouchbaseEnvironment memcacheEnvironment - def setupSpec() { mock = new CouchbaseMock("127.0.0.1", port, 1, 1) mock.httpServer.register("/query", new QueryServer()) @@ -71,9 +65,6 @@ abstract class AbstractCouchbaseTest extends AgentTestRunner { mock.createBucket(convert(bucketCouchbase)) mock.createBucket(convert(bucketMemcache)) - couchbaseEnvironment = envBuilder(bucketCouchbase).build() - memcacheEnvironment = envBuilder(bucketMemcache).build() - // This setting should have no effect since decorator returns null for the instance. System.setProperty(Config.PREFIX + Config.DB_CLIENT_HOST_SPLIT_BY_INSTANCE, "true") } @@ -94,7 +85,7 @@ abstract class AbstractCouchbaseTest extends AgentTestRunner { System.clearProperty(Config.PREFIX + Config.DB_CLIENT_HOST_SPLIT_BY_INSTANCE) } - private DefaultCouchbaseEnvironment.Builder envBuilder(BucketSettings bucketSettings) { + protected DefaultCouchbaseEnvironment.Builder envBuilder(BucketSettings bucketSettings) { // Couchbase seems to be really slow to start sometimes def timeout = TimeUnit.SECONDS.toMillis(20) return DefaultCouchbaseEnvironment.builder()