This is an automated email from the ASF dual-hosted git repository.

alexpl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 6ed0330  IGNITE-12323 Fixed flaky test 
GridCommandHandlerTest.testBaselineAutoAdjustmentAutoRemoveNode - Fixes #7001.
6ed0330 is described below

commit 6ed0330129439a953bc81fb3ae4324d84152b847
Author: NSAmelchev <[email protected]>
AuthorDate: Fri Nov 15 16:30:15 2019 +0300

    IGNITE-12323 Fixed flaky test 
GridCommandHandlerTest.testBaselineAutoAdjustmentAutoRemoveNode - Fixes #7001.
    
    Signed-off-by: Aleksey Plekhanov <[email protected]>
---
 .../apache/ignite/util/GridCommandHandlerTest.java | 41 ++++++++++++++++++----
 1 file changed, 35 insertions(+), 6 deletions(-)

diff --git 
a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java 
b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
index 95a0296..e5c14a3 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/util/GridCommandHandlerTest.java
@@ -35,6 +35,7 @@ import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.LongAdder;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -89,7 +90,6 @@ import org.apache.ignite.lang.IgniteInClosure;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.plugin.extensions.communication.Message;
-import org.apache.ignite.testframework.GridTestUtils;
 import org.apache.ignite.testframework.junits.WithSystemProperty;
 import org.apache.ignite.transactions.Transaction;
 import org.apache.ignite.transactions.TransactionRollbackException;
@@ -103,6 +103,8 @@ import static 
org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
 import static org.apache.ignite.cache.CacheMode.PARTITIONED;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
 import static org.apache.ignite.cache.PartitionLossPolicy.READ_ONLY_SAFE;
+import static org.apache.ignite.events.EventType.EVT_NODE_FAILED;
+import static org.apache.ignite.events.EventType.EVT_NODE_LEFT;
 import static 
org.apache.ignite.internal.commandline.CommandHandler.CONFIRM_MSG;
 import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_INVALID_ARGUMENTS;
 import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
@@ -110,6 +112,7 @@ import static 
org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_UN
 import static org.apache.ignite.internal.commandline.CommandList.DEACTIVATE;
 import static 
org.apache.ignite.internal.processors.diagnostic.DiagnosticProcessor.DEFAULT_TARGET_FOLDER;
 import static org.apache.ignite.testframework.GridTestUtils.assertContains;
+import static org.apache.ignite.testframework.GridTestUtils.runAsync;
 import static org.apache.ignite.testframework.GridTestUtils.waitForCondition;
 import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
 import static 
org.apache.ignite.transactions.TransactionConcurrency.PESSIMISTIC;
@@ -551,13 +554,39 @@ public class GridCommandHandlerTest extends 
GridCommandHandlerClusterPerMethodAb
 
         ignite.cluster().active(true);
 
-        assertEquals(EXIT_CODE_OK, execute("--baseline", "auto_adjust", 
"enable", "timeout", "2000"));
+        int timeout = 2000;
+
+        assertEquals(EXIT_CODE_OK,
+            execute("--baseline", "auto_adjust", "enable", "timeout", 
String.valueOf(timeout)));
 
         assertEquals(3, ignite.cluster().currentBaselineTopology().size());
 
-        stopGrid(2);
+        CountDownLatch nodeLeftLatch = new CountDownLatch(1);
 
-        assertEquals(3, ignite.cluster().currentBaselineTopology().size());
+        AtomicLong nodeLeftTime = new AtomicLong();
+
+        ignite.events().localListen(event -> {
+            nodeLeftTime.set(event.timestamp());
+
+            nodeLeftLatch.countDown();
+
+            return false;
+        }, EVT_NODE_LEFT, EVT_NODE_FAILED);
+
+        runAsync(() -> stopGrid(2));
+
+        nodeLeftLatch.await();
+
+        while (true) {
+            int bltSize = ignite.cluster().currentBaselineTopology().size();
+
+            if (System.currentTimeMillis() >= nodeLeftTime.get() + timeout)
+                break;
+
+            assertEquals(3, bltSize);
+
+            U.sleep(100);
+        }
 
         assertTrue(waitForCondition(() -> 
ignite.cluster().currentBaselineTopology().size() == 2, 10000));
 
@@ -1075,7 +1104,7 @@ public class GridCommandHandlerTest extends 
GridCommandHandlerClusterPerMethodAb
 
         injectTestSystemOut();
 
-        IgniteInternalFuture fut = GridTestUtils.runAsync(() ->
+        IgniteInternalFuture fut = runAsync(() ->
             assertEquals(EXIT_CODE_OK, execute("--cache", "idle_verify", 
"--dump")));
 
         TestRecordingCommunicationSpi.spi(unstable).waitForBlocked();
@@ -1120,7 +1149,7 @@ public class GridCommandHandlerTest extends 
GridCommandHandlerClusterPerMethodAb
 
         injectTestSystemOut();
 
-        IgniteInternalFuture fut = GridTestUtils.runAsync(
+        IgniteInternalFuture fut = runAsync(
             () -> assertEquals(EXIT_CODE_OK, execute("--cache", "idle_verify", 
"--dump"))
         );
 

Reply via email to