Skip to content

Commit

Permalink
Fixed - Redisson instance leak during tests execution
Browse files Browse the repository at this point in the history
  • Loading branch information
Nikita committed Nov 25, 2016
1 parent 8986788 commit a54801f
Show file tree
Hide file tree
Showing 10 changed files with 77 additions and 28 deletions.
4 changes: 1 addition & 3 deletions redisson/src/test/java/org/redisson/BaseTest.java
Expand Up @@ -60,9 +60,7 @@ public static Config createConfig() {
// 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")
Expand Down
Expand Up @@ -48,6 +48,8 @@ public void testPollWithBrokenConnection() throws IOException, InterruptedExcept
long start = System.currentTimeMillis();
assertThat(f.get()).isNull();
assertThat(System.currentTimeMillis() - start).isGreaterThan(3800);

redisson.shutdown();
}

@Test
Expand Down Expand Up @@ -99,6 +101,7 @@ public void run() {

await().atMost(5, TimeUnit.SECONDS).until(() -> assertThat(executed.get()).isTrue());

redisson.shutdown();
runner.stop();
}

Expand Down Expand Up @@ -134,6 +137,8 @@ public void testPollAsyncReattach() throws InterruptedException, IOException, Ex

Integer result = f.get(1, TimeUnit.SECONDS);
assertThat(result).isEqualTo(123);

redisson.shutdown();
runner.stop();
}

Expand Down Expand Up @@ -170,6 +175,8 @@ public void testTakeReattach() throws InterruptedException, IOException, Executi
Integer result = f.get(1, TimeUnit.SECONDS);
assertThat(result).isEqualTo(123);
runner.stop();

redisson.shutdown();
}

@Test
Expand Down
Expand Up @@ -238,6 +238,8 @@ public void testPollWithBrokenConnection() throws IOException, InterruptedExcept
long start = System.currentTimeMillis();
assertThat(f.get()).isNull();
assertThat(System.currentTimeMillis() - start).isGreaterThan(3800);

redisson.shutdown();
}

@Test
Expand Down Expand Up @@ -292,6 +294,7 @@ public void run() {

await().atMost(5, TimeUnit.SECONDS).until(() -> assertThat(executed.get()).isTrue());

redisson.shutdown();
runner.stop();
}

Expand Down Expand Up @@ -328,6 +331,8 @@ public void testPollAsyncReattach() throws InterruptedException, IOException, Ex

Integer result = f.get(1, TimeUnit.SECONDS);
assertThat(result).isEqualTo(123);

redisson.shutdown();
runner.stop();
}

Expand Down Expand Up @@ -368,6 +373,8 @@ public void testTakeReattach() throws InterruptedException, IOException, Executi
Integer result = f.get(1, TimeUnit.SECONDS);
assertThat(result).isEqualTo(123);
runner.stop();

redisson.shutdown();
}

@Test
Expand Down
49 changes: 27 additions & 22 deletions redisson/src/test/java/org/redisson/RedissonCodecTest.java
Expand Up @@ -4,6 +4,7 @@
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;
Expand Down Expand Up @@ -44,108 +45,110 @@ 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);

}

@Test
public void testListOfStrings() {
Config config = createConfig();
config.setCodec(new JsonJacksonCodec());
redisson = Redisson.create(config);
RedissonClient redisson = Redisson.create(config);

RMap<String, List<String>> map = redisson.getMap("list of strings", jsonListOfStringCodec);
map.put("foo", new ArrayList<String>(Arrays.asList("bar")));

RMap<String, List<String>> map2 = redisson.getMap("list of strings", jsonListOfStringCodec);

assertThat(map2).isEqualTo(map);

redisson.shutdown();
}

public void test() {
public void test(RedissonClient redisson) {
RMap<Integer, Map<String, Object>> map = redisson.getMap("getAll");
Map<String, Object> a = new HashMap<String, Object>();
a.put("double", new Double(100000.0));
Expand All @@ -172,5 +175,7 @@ public void test() {
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();
}
}
Expand Up @@ -49,6 +49,8 @@ public void run() {
lock.lock();
lock.unlock();

client.shutdown();

assertThat(redis1.stop()).isEqualTo(0);
}

Expand Down Expand Up @@ -89,6 +91,10 @@ public void run() {

lock.unlock();

client1.shutdown();
client2.shutdown();
client3.shutdown();

assertThat(redis1.stop()).isEqualTo(0);

assertThat(redis2.stop()).isEqualTo(0);
Expand Down
16 changes: 16 additions & 0 deletions redisson/src/test/java/org/redisson/RedissonRedLockTest.java
Expand Up @@ -63,6 +63,9 @@ public void testLockLeasetime() throws IOException, InterruptedException {
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);
}
Expand Down Expand Up @@ -106,6 +109,9 @@ public void testTryLockLeasetime() throws IOException, InterruptedException {
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);
}
Expand Down Expand Up @@ -144,6 +150,9 @@ public void run() {
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);
}
Expand Down Expand Up @@ -190,6 +199,9 @@ public void run() {
lock.lock();
lock.unlock();

client1.shutdown();
client2.shutdown();

assertThat(redis1.stop()).isEqualTo(0);
assertThat(redis2.stop()).isEqualTo(0);
}
Expand Down Expand Up @@ -228,6 +240,9 @@ public void run() {
lock.lock();
lock.unlock();

client1.shutdown();
client2.shutdown();

assertThat(redis1.stop()).isEqualTo(0);
}

Expand Down Expand Up @@ -264,6 +279,7 @@ public void run() {
lock.lock();
lock.unlock();

client.shutdown();
assertThat(redis1.stop()).isEqualTo(0);
}

Expand Down
Expand Up @@ -7,6 +7,7 @@
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;

Expand Down Expand Up @@ -64,13 +65,16 @@ public void testReactiveToNormal() throws InterruptedException {
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();
List<RBucket> result = (List<RBucket>)b.execute();
assertEquals("b2", result.get(0).getName());
assertEquals("b3", result.get(1).getName());
assertEquals("b1", result.get(2).getName());

lredisson.shutdown();
}
}
8 changes: 6 additions & 2 deletions redisson/src/test/java/org/redisson/RedissonTest.java
Expand Up @@ -157,13 +157,15 @@ public void testMemoryScript() throws IOException, InterruptedException {
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();
}
}
Expand All @@ -175,13 +177,15 @@ public void testMemoryCommand() throws IOException, InterruptedException {
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();
}
}
Expand Down
Expand Up @@ -305,6 +305,7 @@ public void onMessage(String pattern, String channel, Integer msg) {

await().atMost(5, TimeUnit.SECONDS).untilTrue(executed);

redisson.shutdown();
runner.stop();
}

Expand Down
1 change: 1 addition & 0 deletions redisson/src/test/java/org/redisson/RedissonTopicTest.java
Expand Up @@ -463,6 +463,7 @@ public void onMessage(String channel, Integer msg) {

await().atMost(5, TimeUnit.SECONDS).untilTrue(executed);

redisson.shutdown();
runner.stop();
}

Expand Down

0 comments on commit a54801f

Please sign in to comment.