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);

Reply via email to