You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/07/10 12:00:18 UTC

[02/41] ignite git commit: IGNITE-5520 - Fixed IgniteChangeGlobalStateFailoverTest

IGNITE-5520 - Fixed IgniteChangeGlobalStateFailoverTest


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/85d8c657
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/85d8c657
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/85d8c657

Branch: refs/heads/ignite-5578-1
Commit: 85d8c6572d78c7d6796906d92b566e2fa5b116be
Parents: ab52671
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Fri Jul 7 13:13:55 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Fri Jul 7 13:15:26 2017 +0300

----------------------------------------------------------------------
 .../IgniteChangeGlobalStateFailOverTest.java    | 56 +++++++++++++-------
 1 file changed, 37 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/85d8c657/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateFailOverTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateFailOverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateFailOverTest.java
index 92d1f21..02a21f4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateFailOverTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteChangeGlobalStateFailOverTest.java
@@ -21,11 +21,11 @@ import java.util.concurrent.Callable;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.util.typedef.internal.U;
 
 import static java.lang.Thread.sleep;
 import static org.apache.ignite.testframework.GridTestUtils.runAsync;
@@ -144,8 +144,6 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
      * @throws Exception If failed.
      */
     public void testActivateDeActivateOnJoiningNode() throws Exception {
-        fail("https://issues.apache.org/jira/browse/IGNITE-5520");
-
         final Ignite igB1 = backUp(0);
         final Ignite igB2 = backUp(1);
         final Ignite igB3 = backUp(2);
@@ -162,14 +160,17 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
 
         final AtomicBoolean stop = new AtomicBoolean();
 
-        final AtomicBoolean canAct = new AtomicBoolean(true);
         final AtomicInteger seqIdx = new AtomicInteger(backUpNodes());
 
+        final ReentrantReadWriteLock rwLock = new ReentrantReadWriteLock();
+
         try {
             final IgniteInternalFuture<Void> af = runAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
                     while (!stop.get()) {
-                        if (canAct.get()) {
+                        rwLock.readLock().lock();
+
+                        try {
                             Ignite ig = randomBackUp(false);
 
                             long start = System.currentTimeMillis();
@@ -182,13 +183,12 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
 
                             for (Ignite ign : allBackUpNodes())
                                 assertTrue(ign.active());
-
-                            canAct.set(false);
                         }
-                        else
-                            U.sleep(100);
-
+                        finally {
+                            rwLock.readLock().unlock();
+                        }
                     }
+
                     return null;
                 }
             });
@@ -196,7 +196,9 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
             final IgniteInternalFuture<Void> df = runAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
                     while (!stop.get()) {
-                        if (!canAct.get()) {
+                        rwLock.writeLock().lock();
+
+                        try {
                             Ignite ig = randomBackUp(false);
 
                             long start = System.currentTimeMillis();
@@ -209,20 +211,28 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
 
                             for (Ignite ign : allBackUpNodes())
                                 assertTrue(!ign.active());
-
-                            canAct.set(true);
                         }
-                        else
-                            U.sleep(100);
+                        finally {
+                            rwLock.writeLock().unlock();
+                        }
                     }
+
                     return null;
                 }
             });
 
             IgniteInternalFuture<Void> jf1 = runAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
-                    while (!stop.get())
-                        startBackUp(seqIdx.incrementAndGet());
+                    while (!stop.get()) {
+                        rwLock.readLock().lock();
+
+                        try {
+                            startBackUp(seqIdx.incrementAndGet());
+                        }
+                        finally {
+                            rwLock.readLock().unlock();
+                        }
+                    }
 
                     return null;
                 }
@@ -230,8 +240,16 @@ public class IgniteChangeGlobalStateFailOverTest extends IgniteChangeGlobalState
 
             IgniteInternalFuture<Void> jf2 = runAsync(new Callable<Void>() {
                 @Override public Void call() throws Exception {
-                    while (!stop.get())
-                        startBackUp(seqIdx.incrementAndGet());
+                    while (!stop.get()) {
+                        rwLock.readLock().lock();
+
+                        try {
+                            startBackUp(seqIdx.incrementAndGet());
+                        }
+                        finally {
+                            rwLock.readLock().unlock();
+                        }
+                    }
 
                     return null;
                 }