From a54801f31cea1ab6f4e63a644b914f67b258aac0 Mon Sep 17 00:00:00 2001 From: Nikita Date: Fri, 25 Nov 2016 18:27:27 +0300 Subject: [PATCH] Fixed - Redisson instance leak during tests execution --- .../src/test/java/org/redisson/BaseTest.java | 4 +- .../redisson/RedissonBlockingQueueTest.java | 7 +++ .../RedissonBoundedBlockingQueueTest.java | 7 +++ .../java/org/redisson/RedissonCodecTest.java | 49 ++++++++++--------- .../org/redisson/RedissonMultiLockTest.java | 6 +++ .../org/redisson/RedissonRedLockTest.java | 16 ++++++ .../RedissonReferenceReactiveTest.java | 6 ++- .../test/java/org/redisson/RedissonTest.java | 8 ++- .../redisson/RedissonTopicPatternTest.java | 1 + .../java/org/redisson/RedissonTopicTest.java | 1 + 10 files changed, 77 insertions(+), 28 deletions(-) diff --git a/redisson/src/test/java/org/redisson/BaseTest.java b/redisson/src/test/java/org/redisson/BaseTest.java index f54265cdc..2caa0e612 100644 --- a/redisson/src/test/java/org/redisson/BaseTest.java +++ b/redisson/src/test/java/org/redisson/BaseTest.java @@ -60,9 +60,7 @@ public abstract class BaseTest { // config.useSentinelServers().setMasterName("mymaster").addSentinelAddress("127.0.0.1:26379", "127.0.0.1:26389"); // config.useClusterServers().addNodeAddress("127.0.0.1:7004", "127.0.0.1:7001", "127.0.0.1:7000"); config.useSingleServer() - .setAddress(RedisRunner.getDefaultRedisServerBindAddressAndPort()) - .setConnectTimeout(1000000) - .setTimeout(1000000); + .setAddress(RedisRunner.getDefaultRedisServerBindAddressAndPort()); // .setPassword("mypass1"); // config.useMasterSlaveConnection() // .setMasterAddress("127.0.0.1:6379") diff --git a/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java b/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java index 76b0d31cc..8c5c3d827 100644 --- a/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBlockingQueueTest.java @@ -48,6 +48,8 @@ public class RedissonBlockingQueueTest extends BaseTest { long start = System.currentTimeMillis(); assertThat(f.get()).isNull(); assertThat(System.currentTimeMillis() - start).isGreaterThan(3800); + + redisson.shutdown(); } @Test @@ -99,6 +101,7 @@ public class RedissonBlockingQueueTest extends BaseTest { await().atMost(5, TimeUnit.SECONDS).until(() -> assertThat(executed.get()).isTrue()); + redisson.shutdown(); runner.stop(); } @@ -134,6 +137,8 @@ public class RedissonBlockingQueueTest extends BaseTest { Integer result = f.get(1, TimeUnit.SECONDS); assertThat(result).isEqualTo(123); + + redisson.shutdown(); runner.stop(); } @@ -170,6 +175,8 @@ public class RedissonBlockingQueueTest extends BaseTest { Integer result = f.get(1, TimeUnit.SECONDS); assertThat(result).isEqualTo(123); runner.stop(); + + redisson.shutdown(); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonBoundedBlockingQueueTest.java b/redisson/src/test/java/org/redisson/RedissonBoundedBlockingQueueTest.java index 8e29512cb..2e9cab970 100644 --- a/redisson/src/test/java/org/redisson/RedissonBoundedBlockingQueueTest.java +++ b/redisson/src/test/java/org/redisson/RedissonBoundedBlockingQueueTest.java @@ -238,6 +238,8 @@ public class RedissonBoundedBlockingQueueTest extends BaseTest { long start = System.currentTimeMillis(); assertThat(f.get()).isNull(); assertThat(System.currentTimeMillis() - start).isGreaterThan(3800); + + redisson.shutdown(); } @Test @@ -292,6 +294,7 @@ public class RedissonBoundedBlockingQueueTest extends BaseTest { await().atMost(5, TimeUnit.SECONDS).until(() -> assertThat(executed.get()).isTrue()); + redisson.shutdown(); runner.stop(); } @@ -328,6 +331,8 @@ public class RedissonBoundedBlockingQueueTest extends BaseTest { Integer result = f.get(1, TimeUnit.SECONDS); assertThat(result).isEqualTo(123); + + redisson.shutdown(); runner.stop(); } @@ -368,6 +373,8 @@ public class RedissonBoundedBlockingQueueTest extends BaseTest { Integer result = f.get(1, TimeUnit.SECONDS); assertThat(result).isEqualTo(123); runner.stop(); + + redisson.shutdown(); } @Test diff --git a/redisson/src/test/java/org/redisson/RedissonCodecTest.java b/redisson/src/test/java/org/redisson/RedissonCodecTest.java index bab1670ea..372c9130f 100644 --- a/redisson/src/test/java/org/redisson/RedissonCodecTest.java +++ b/redisson/src/test/java/org/redisson/RedissonCodecTest.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import org.junit.Assert; import org.junit.Test; import org.redisson.api.RMap; +import org.redisson.api.RedissonClient; import org.redisson.client.codec.Codec; import org.redisson.client.codec.JsonJacksonMapValueCodec; import org.redisson.codec.CborJacksonCodec; @@ -44,90 +45,90 @@ public class RedissonCodecTest extends BaseTest { public void testLZ4() { Config config = createConfig(); config.setCodec(lz4Codec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testJdk() { Config config = createConfig(); config.setCodec(codec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testMsgPack() { Config config = createConfig(); config.setCodec(msgPackCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testSmile() { Config config = createConfig(); config.setCodec(smileCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testAvro() { Config config = createConfig(); config.setCodec(avroCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testFst() { Config config = createConfig(); config.setCodec(fstCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testSnappy() { Config config = createConfig(); config.setCodec(snappyCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testJson() { Config config = createConfig(); config.setCodec(jsonCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testKryo() { Config config = createConfig(); config.setCodec(kryoCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @Test public void testCbor() { Config config = createConfig(); config.setCodec(cborCodec); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); - test(); + test(redisson); } @@ -135,7 +136,7 @@ public class RedissonCodecTest extends BaseTest { public void testListOfStrings() { Config config = createConfig(); config.setCodec(new JsonJacksonCodec()); - redisson = Redisson.create(config); + RedissonClient redisson = Redisson.create(config); RMap> map = redisson.getMap("list of strings", jsonListOfStringCodec); map.put("foo", new ArrayList(Arrays.asList("bar"))); @@ -143,9 +144,11 @@ public class RedissonCodecTest extends BaseTest { RMap> map2 = redisson.getMap("list of strings", jsonListOfStringCodec); assertThat(map2).isEqualTo(map); + + redisson.shutdown(); } - public void test() { + public void test(RedissonClient redisson) { RMap> map = redisson.getMap("getAll"); Map a = new HashMap(); a.put("double", new Double(100000.0)); @@ -172,5 +175,7 @@ public class RedissonCodecTest extends BaseTest { Assert.assertTrue(set.contains(new TestObject("2", "3"))); Assert.assertTrue(set.contains(new TestObject("1", "2"))); Assert.assertFalse(set.contains(new TestObject("1", "9"))); + + redisson.shutdown(); } } diff --git a/redisson/src/test/java/org/redisson/RedissonMultiLockTest.java b/redisson/src/test/java/org/redisson/RedissonMultiLockTest.java index 8ea0b42af..0a3d832ed 100644 --- a/redisson/src/test/java/org/redisson/RedissonMultiLockTest.java +++ b/redisson/src/test/java/org/redisson/RedissonMultiLockTest.java @@ -49,6 +49,8 @@ public class RedissonMultiLockTest { lock.lock(); lock.unlock(); + client.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); } @@ -89,6 +91,10 @@ public class RedissonMultiLockTest { lock.unlock(); + client1.shutdown(); + client2.shutdown(); + client3.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); assertThat(redis2.stop()).isEqualTo(0); diff --git a/redisson/src/test/java/org/redisson/RedissonRedLockTest.java b/redisson/src/test/java/org/redisson/RedissonRedLockTest.java index 1791baf13..b15180870 100644 --- a/redisson/src/test/java/org/redisson/RedissonRedLockTest.java +++ b/redisson/src/test/java/org/redisson/RedissonRedLockTest.java @@ -63,6 +63,9 @@ public class RedissonRedLockTest { assertThat(executor.awaitTermination(2, TimeUnit.MINUTES)).isTrue(); assertThat(counter.get()).isEqualTo(50); + client1.shutdown(); + client2.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); assertThat(redis2.stop()).isEqualTo(0); } @@ -106,6 +109,9 @@ public class RedissonRedLockTest { assertThat(executor.awaitTermination(2, TimeUnit.MINUTES)).isTrue(); assertThat(counter.get()).isEqualTo(50); + client1.shutdown(); + client2.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); assertThat(redis2.stop()).isEqualTo(0); } @@ -144,6 +150,9 @@ public class RedissonRedLockTest { RedissonMultiLock lock = new RedissonRedLock(lock1, lock2, lock3); Assert.assertFalse(lock.tryLock()); + client1.shutdown(); + client2.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); assertThat(redis2.stop()).isEqualTo(0); } @@ -190,6 +199,9 @@ public class RedissonRedLockTest { lock.lock(); lock.unlock(); + client1.shutdown(); + client2.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); assertThat(redis2.stop()).isEqualTo(0); } @@ -228,6 +240,9 @@ public class RedissonRedLockTest { lock.lock(); lock.unlock(); + client1.shutdown(); + client2.shutdown(); + assertThat(redis1.stop()).isEqualTo(0); } @@ -264,6 +279,7 @@ public class RedissonRedLockTest { lock.lock(); lock.unlock(); + client.shutdown(); assertThat(redis1.stop()).isEqualTo(0); } diff --git a/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java b/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java index 08653322e..5b15242fa 100644 --- a/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java +++ b/redisson/src/test/java/org/redisson/RedissonReferenceReactiveTest.java @@ -7,6 +7,7 @@ import org.redisson.api.RBatch; import org.redisson.api.RBatchReactive; import org.redisson.api.RBucket; import org.redisson.api.RBucketReactive; +import org.redisson.api.RedissonClient; import org.redisson.reactive.RedissonBucketReactive; import org.redisson.reactive.RedissonMapCacheReactive; @@ -64,7 +65,8 @@ public class RedissonReferenceReactiveTest extends BaseReactiveTest { b3.set(b1); sync(batch.execute()); - RBatch b = Redisson.create(redisson.getConfig()).createBatch(); + RedissonClient lredisson = Redisson.create(redisson.getConfig()); + RBatch b = lredisson.createBatch(); b.getBucket("b1").getAsync(); b.getBucket("b2").getAsync(); b.getBucket("b3").getAsync(); @@ -72,5 +74,7 @@ public class RedissonReferenceReactiveTest extends BaseReactiveTest { assertEquals("b2", result.get(0).getName()); assertEquals("b3", result.get(1).getName()); assertEquals("b1", result.get(2).getName()); + + lredisson.shutdown(); } } diff --git a/redisson/src/test/java/org/redisson/RedissonTest.java b/redisson/src/test/java/org/redisson/RedissonTest.java index 063b52975..6298895bf 100644 --- a/redisson/src/test/java/org/redisson/RedissonTest.java +++ b/redisson/src/test/java/org/redisson/RedissonTest.java @@ -157,13 +157,15 @@ public class RedissonTest { Config config = new Config(); config.useSingleServer().setAddress(p.getRedisServerAddressAndPort()).setTimeout(100000); + RedissonClient r = null; try { - RedissonClient r = Redisson.create(config); + r = Redisson.create(config); r.getKeys().flushall(); for (int i = 0; i < 10000; i++) { r.getMap("test").put("" + i, "" + i); } } finally { + r.shutdown(); p.stop(); } } @@ -175,13 +177,15 @@ public class RedissonTest { Config config = new Config(); config.useSingleServer().setAddress(p.getRedisServerAddressAndPort()).setTimeout(100000); + RedissonClient r = null; try { - RedissonClient r = Redisson.create(config); + r = Redisson.create(config); r.getKeys().flushall(); for (int i = 0; i < 10000; i++) { r.getMap("test").fastPut("" + i, "" + i); } } finally { + r.shutdown(); p.stop(); } } diff --git a/redisson/src/test/java/org/redisson/RedissonTopicPatternTest.java b/redisson/src/test/java/org/redisson/RedissonTopicPatternTest.java index 65533b905..e13e42e5d 100644 --- a/redisson/src/test/java/org/redisson/RedissonTopicPatternTest.java +++ b/redisson/src/test/java/org/redisson/RedissonTopicPatternTest.java @@ -305,6 +305,7 @@ public class RedissonTopicPatternTest { await().atMost(5, TimeUnit.SECONDS).untilTrue(executed); + redisson.shutdown(); runner.stop(); } diff --git a/redisson/src/test/java/org/redisson/RedissonTopicTest.java b/redisson/src/test/java/org/redisson/RedissonTopicTest.java index ca5848001..6417786f6 100644 --- a/redisson/src/test/java/org/redisson/RedissonTopicTest.java +++ b/redisson/src/test/java/org/redisson/RedissonTopicTest.java @@ -463,6 +463,7 @@ public class RedissonTopicTest { await().atMost(5, TimeUnit.SECONDS).untilTrue(executed); + redisson.shutdown(); runner.stop(); }