Repository: ignite
Updated Branches:
  refs/heads/master 0bb56a64e -> d9c482137


IGNITE-6430 Fix for 
CacheGroupsMetricsRebalanceTest.testRebalanceEstimateFinishTime test fails 
periodically. - Fixes #3914.

Signed-off-by: dpavlov <[email protected]>


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

Branch: refs/heads/master
Commit: d9c4821373d4282483d32be0a3a17412445bf855
Parents: 0bb56a6
Author: Alexander Menshikov <[email protected]>
Authored: Tue May 15 14:52:41 2018 +0300
Committer: dpavlov <[email protected]>
Committed: Tue May 15 14:52:41 2018 +0300

----------------------------------------------------------------------
 .../cache/CacheGroupsMetricsRebalanceTest.java  | 53 +++++++++++---------
 1 file changed, 30 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d9c48213/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGroupsMetricsRebalanceTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGroupsMetricsRebalanceTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGroupsMetricsRebalanceTest.java
index ceb9852..a055909 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGroupsMetricsRebalanceTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheGroupsMetricsRebalanceTest.java
@@ -177,8 +177,6 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
 
         final int KEYS = 4_000_000;
 
-        IgniteCache<Object, Object> cache1 = ig1.cache(CACHE1);
-
         try (IgniteDataStreamer<Integer, String> st = 
ig1.dataStreamer(CACHE1)) {
             for (int i = 0; i < KEYS; i++)
                 st.addData(i, CACHE1 + "-" + i);
@@ -193,7 +191,7 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
                 CacheRebalancingEvent rebEvent = (CacheRebalancingEvent)evt;
 
                 if (rebEvent.cacheName().equals(CACHE1)) {
-                    System.out.println("CountDown rebalance stop latch:" + 
rebEvent.cacheName());
+                    log.info("CountDown rebalance stop latch: " + 
rebEvent.cacheName());
 
                     finishRebalanceLatch.countDown();
                 }
@@ -211,10 +209,10 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
         CacheMetrics metrics = ig2.cache(CACHE1).localMetrics();
 
         long startTime = metrics.getRebalancingStartTime();
+        long currTime = U.currentTimeMillis();
 
-        assertTrue(startTime > 0);
-        assertTrue((U.currentTimeMillis() - startTime) < 5000);
-        assertTrue((U.currentTimeMillis() - startTime) > 0);
+        assertTrue("Invalid start time [startTime=" + startTime + ", 
currTime=" + currTime + ']',
+            startTime > 0L && (currTime - startTime) >= 0L && (currTime - 
startTime) <= 5000L);
 
         final CountDownLatch latch = new CountDownLatch(1);
 
@@ -223,9 +221,9 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
                 // Waiting 25% keys will be rebalanced.
                 int partKeys = KEYS / 2;
 
-                final long keysLine = (long)(partKeys - (partKeys * 0.25));
+                final long keysLine = partKeys * 3L / 4L;
 
-                System.out.println("Wait until keys left will be less " + 
keysLine);
+                log.info("Wait until keys left will be less than: " + 
keysLine);
 
                 try {
                     while (finishRebalanceLatch.getCount() != 0) {
@@ -236,13 +234,13 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
                         if (keyLeft > 0 && keyLeft < keysLine)
                             latch.countDown();
 
-                        System.out.println("Keys left: " + 
m.getKeysToRebalanceLeft());
+                        log.info("Keys left: " + m.getKeysToRebalanceLeft());
 
                         try {
                             Thread.sleep(1_000);
                         }
                         catch (InterruptedException e) {
-                            System.out.println("Interrupt thread: " + 
e.getMessage());
+                            log.warning("Interrupt thread", e);
 
                             Thread.currentThread().interrupt();
                         }
@@ -256,30 +254,39 @@ public class CacheGroupsMetricsRebalanceTest extends 
GridCommonAbstractTest {
 
         assertTrue(latch.await(getTestTimeout(), TimeUnit.MILLISECONDS));
 
+        waitForCondition(new PA() {
+            @Override public boolean apply() {
+                return 
ig2.cache(CACHE1).localMetrics().getEstimatedRebalancingFinishTime() != -1L;
+            }
+        }, 5_000L);
+
         long finishTime = 
ig2.cache(CACHE1).localMetrics().getEstimatedRebalancingFinishTime();
 
-        assertTrue(finishTime > 0);
+        assertTrue("Not a positive estimation of rebalancing finish time: " + 
finishTime,
+            finishTime > 0L);
+
+        currTime = U.currentTimeMillis();
 
-        long timePassed = U.currentTimeMillis() - startTime;
-        long timeLeft = finishTime - System.currentTimeMillis();
+        long timePassed = currTime - startTime;
+        long timeLeft = finishTime - currTime;
 
-        assertTrue(finishRebalanceLatch.await(timeLeft + 2_000, 
TimeUnit.SECONDS));
+        assertTrue("Got timeout while waiting for rebalancing. Estimated left 
time: " + timeLeft,
+            finishRebalanceLatch.await(timeLeft + 2_000L, 
TimeUnit.MILLISECONDS));
 
-        System.out.println(
-            "TimePassed:" + timePassed +
-                "\nTimeLeft:" + timeLeft +
-                "\nTime to rebalance: " + (finishTime - startTime) +
-                "\nStartTime: " + startTime +
-                "\nFinishTime: " + finishTime
+        log.info("[timePassed=" + timePassed + ", timeLeft=" + timeLeft +
+                ", Time to rebalance=" + (finishTime - startTime) +
+                ", startTime=" + startTime + ", finishTime=" + finishTime + ']'
         );
 
         System.clearProperty(IGNITE_REBALANCE_STATISTICS_TIME_INTERVAL);
 
-        System.out.println("Rebalance time:" + (U.currentTimeMillis() - 
startTime));
+        currTime = U.currentTimeMillis();
+
+        log.info("Rebalance time: " + (currTime - startTime));
 
-        long diff = finishTime - U.currentTimeMillis();
+        long diff = finishTime - currTime;
 
-        assertTrue("Expected less 5000, Actual:" + diff, Math.abs(diff) < 
10_000);
+        assertTrue("Expected less than 10000, but actual: " + diff, 
Math.abs(diff) < 10_000L);
     }
 
     /**

Reply via email to