Repository: ignite Updated Branches: refs/heads/master 25f83819a -> 4bfedaf85
IGNITE-9225 Minor code cleanup to prevent possible hanging and JVM halt by failure handler. - Fixes #4497. Signed-off-by: Alexey Goncharuk <alexey.goncha...@gmail.com> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4bfedaf8 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4bfedaf8 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4bfedaf8 Branch: refs/heads/master Commit: 4bfedaf8519e05585532356584e49db3e1c3ca49 Parents: 25f8381 Author: pereslegin-pa <xxt...@gmail.com> Authored: Thu Aug 9 12:56:53 2018 +0300 Committer: Alexey Goncharuk <alexey.goncha...@gmail.com> Committed: Thu Aug 9 12:56:53 2018 +0300 ---------------------------------------------------------------------- .../IgniteClientReconnectAbstractTest.java | 32 ++-- .../cache/WalModeChangeAdvancedSelfTest.java | 155 +++++++++---------- .../WalModeChangeCommonAbstractSelfTest.java | 4 +- 3 files changed, 91 insertions(+), 100 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/4bfedaf8/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java index 76a0d52..0d89da2 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/IgniteClientReconnectAbstractTest.java @@ -305,26 +305,32 @@ public abstract class IgniteClientReconnectAbstractTest extends GridCommonAbstra } }; - for (Ignite client : clients) - client.events().localListen(p, EVT_CLIENT_NODE_DISCONNECTED, EVT_CLIENT_NODE_RECONNECTED); + try { + for (Ignite client : clients) + client.events().localListen(p, EVT_CLIENT_NODE_DISCONNECTED, EVT_CLIENT_NODE_RECONNECTED); - for (Ignite client : clients) - srvSpi.failNode(client.cluster().localNode().id(), null); + for (Ignite client : clients) + srvSpi.failNode(client.cluster().localNode().id(), null); - waitReconnectEvent(log, disconnectLatch); + waitReconnectEvent(log, disconnectLatch); - if (disconnectedC != null) - disconnectedC.run(); + if (disconnectedC != null) + disconnectedC.run(); - log.info("Allow reconnect."); + log.info("Allow reconnect."); - for (DiscoverySpiTestListener blockLsnr : blockLsnrs) - blockLsnr.stopBlockJoin(); + for (DiscoverySpiTestListener blockLsnr : blockLsnrs) + blockLsnr.stopBlockJoin(); - waitReconnectEvent(log, reconnectLatch); + waitReconnectEvent(log, reconnectLatch); - for (Ignite client : clients) - client.events().stopLocalListen(p); + for (Ignite client : clients) + client.events().stopLocalListen(p); + } + finally { + for (DiscoverySpiTestListener blockLsnr : blockLsnrs) + blockLsnr.stopBlockJoin(); + } } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/4bfedaf8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java index 0fee748..be0f5df 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeAdvancedSelfTest.java @@ -17,18 +17,18 @@ package org.apache.ignite.internal.processors.cache; -import org.apache.ignite.Ignite; -import org.apache.ignite.IgniteCache; -import org.apache.ignite.IgniteException; -import org.apache.ignite.internal.IgniteClientReconnectAbstractTest; -import org.apache.ignite.internal.util.typedef.X; - import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteCache; +import org.apache.ignite.IgniteException; +import org.apache.ignite.internal.IgniteClientReconnectAbstractTest; +import org.apache.ignite.internal.IgniteInternalFuture; +import org.apache.ignite.testframework.GridTestUtils; import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL; import static org.apache.ignite.cache.CacheMode.PARTITIONED; @@ -271,7 +271,7 @@ public class WalModeChangeAdvancedSelfTest extends WalModeChangeCommonAbstractSe restartCnt.incrementAndGet(); - X.println(">>> Finished restart: " + restartCnt.get()); + log.info(">>> Finished restart: " + restartCnt.get()); } } }); @@ -310,55 +310,47 @@ public class WalModeChangeAdvancedSelfTest extends WalModeChangeCommonAbstractSe final AtomicBoolean done = new AtomicBoolean(); - final CountDownLatch latch = new CountDownLatch(1); - // Start load. - Thread t = new Thread(new Runnable() { - @Override public void run() { - boolean state = false; - - while (!done.get()) { - try { - if (state) - cli.cluster().enableWal(CACHE_NAME); - else - cli.cluster().disableWal(CACHE_NAME); - } - catch (IgniteException e) { - String msg = e.getMessage(); + IgniteInternalFuture<?> fut = GridTestUtils.runAsync(() -> { + boolean state = false; - assert msg.startsWith("Client node disconnected") || - msg.startsWith("Client node was disconnected") : e.getMessage(); - } - finally { - state = !state; - } + while (!done.get()) { + try { + if (state) + cli.cluster().enableWal(CACHE_NAME); + else + cli.cluster().disableWal(CACHE_NAME); } + catch (IgniteException e) { + String msg = e.getMessage(); - latch.countDown(); + assert msg.startsWith("Client node disconnected") || + msg.startsWith("Client node was disconnected") : e.getMessage(); + } + finally { + state = !state; + } } - }); - - t.setName("wal-load-" + cli.name()); - - t.start(); + }, "wal-load-" + cli.name()); // Now perform multiple client reconnects. - for (int i = 1; i <= 10; i++) { - Thread.sleep(ThreadLocalRandom.current().nextLong(200, 1000)); + try { + for (int i = 1; i <= 10; i++) { + Thread.sleep(ThreadLocalRandom.current().nextLong(200, 1000)); - IgniteClientReconnectAbstractTest.reconnectClientNode(log, cli, srv, new Runnable() { - @Override public void run() { - // No-op. - } - }); + IgniteClientReconnectAbstractTest.reconnectClientNode(log, cli, srv, new Runnable() { + @Override public void run() { + // No-op. + } + }); - X.println(">>> Finished iteration: " + i); + log.info(">>> Finished iteration: " + i); + } + } finally { + done.set(true); } - done.set(true); - - latch.await(); + fut.get(); } /** @@ -376,56 +368,49 @@ public class WalModeChangeAdvancedSelfTest extends WalModeChangeCommonAbstractSe final AtomicBoolean done = new AtomicBoolean(); - final CountDownLatch latch = new CountDownLatch(1); - // Start load. - Thread t = new Thread(new Runnable() { - @Override public void run() { - boolean state = false; + IgniteInternalFuture<?> fut = GridTestUtils.runAsync(() -> { + boolean state = false; - while (!done.get()) { - try { - if (state) - cli.cluster().enableWal(CACHE_NAME); - else - cli.cluster().disableWal(CACHE_NAME); - } - catch (IgniteException e) { - String msg = e.getMessage(); - - assert msg.startsWith("Cache doesn't exist") || - msg.startsWith("Failed to change WAL mode because some caches no longer exist") : - e.getMessage(); - } - finally { - state = !state; - } + while (!done.get()) { + try { + if (state) + cli.cluster().enableWal(CACHE_NAME); + else + cli.cluster().disableWal(CACHE_NAME); } + catch (IgniteException e) { + String msg = e.getMessage(); - latch.countDown(); + assert msg.startsWith("Cache doesn't exist") || + msg.startsWith("Failed to change WAL mode because some caches no longer exist") : + e.getMessage(); + } + finally { + state = !state; + } } - }); - - t.setName("wal-load-" + cli.name()); - - t.start(); + }, "wal-load-" + cli.name()); - // Now perform multiple client reconnects. - for (int i = 1; i <= 20; i++) { - Thread.sleep(ThreadLocalRandom.current().nextLong(200, 1000)); + try { + // Now perform multiple client reconnects. + for (int i = 1; i <= 20; i++) { + Thread.sleep(ThreadLocalRandom.current().nextLong(200, 1000)); - srv.destroyCache(CACHE_NAME); + srv.destroyCache(CACHE_NAME); - Thread.sleep(100); + Thread.sleep(100); - srv.createCache(cacheConfig(PARTITIONED)); + srv.createCache(cacheConfig(PARTITIONED)); - X.println(">>> Finished iteration: " + i); + log.info(">>> Finished iteration: " + i); + } + } + finally { + done.set(true); } - done.set(true); - - latch.await(); + fut.get(); } /** @@ -495,11 +480,11 @@ public class WalModeChangeAdvancedSelfTest extends WalModeChangeCommonAbstractSe done.set(true); - X.println(">>> Stopping iteration: " + i); + log.info(">>> Stopping iteration: " + i); latch.await(); - X.println(">>> Iteration finished: " + i); + log.info(">>> Iteration finished: " + i); } } http://git-wip-us.apache.org/repos/asf/ignite/blob/4bfedaf8/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java index d4a0078..a902bfa 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WalModeChangeCommonAbstractSelfTest.java @@ -296,8 +296,8 @@ public abstract class WalModeChangeCommonAbstractSelfTest extends GridCommonAbst * @param filter Whether node should be filtered out. * @return Node configuration. */ - protected IgniteConfiguration config(String name, boolean cli, boolean filter) { - IgniteConfiguration cfg = new IgniteConfiguration(); + protected IgniteConfiguration config(String name, boolean cli, boolean filter) throws Exception { + IgniteConfiguration cfg = super.getConfiguration(name); cfg.setIgniteInstanceName(name); cfg.setClientMode(cli);