NSAmelchev commented on code in PR #13119:
URL: https://github.com/apache/ignite/pull/13119#discussion_r3443206374


##########
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteClusterSnapshotSelfTest.java:
##########
@@ -849,81 +849,70 @@ public void testClusterSnapshotWithExplicitPathError() 
throws Exception {
     /** @throws Exception If fails. */
     @Test
     public void testClusterSnapshotMetrics() throws Exception {
-        String newSnapshotName = SNAPSHOT_NAME + "_new";
         CountDownLatch deltaApply = new CountDownLatch(1);
         CountDownLatch deltaBlock = new CountDownLatch(1);
         IgniteEx ignite = startGridsWithCache(2, dfltCacheCfg, 
CACHE_KEYS_RANGE);
 
-        MetricRegistry mreg0 = 
ignite.context().metric().registry(SNAPSHOT_METRICS);
-
-        LongMetric startTime = mreg0.findMetric("LastSnapshotStartTime");
-        LongMetric endTime = mreg0.findMetric("LastSnapshotEndTime");
-        ObjectGauge<String> snpName = mreg0.findMetric("LastSnapshotName");
-        ObjectGauge<String> errMsg = 
mreg0.findMetric("LastSnapshotErrorMessage");
-        ObjectGauge<List<String>> snpList = 
mreg0.findMetric("LocalSnapshotNames");
-
         // Snapshot process will be blocked when delta partition files 
processing starts.
         snp(ignite).localSnapshotSenderFactory(
             blockingLocalSnapshotSender(ignite, deltaApply, deltaBlock));
 
-        assertEquals("Snapshot start time must be undefined prior to snapshot 
operation started.",
-            0, startTime.value());
-        assertEquals("Snapshot end time must be undefined to snapshot 
operation started.",
-            0, endTime.value());
-        assertTrue("Snapshot name must not exist prior to snapshot operation 
started.", snpName.value().isEmpty());
-        assertTrue("Snapshot error message must null prior to snapshot 
operation started.", errMsg.value().isEmpty());
-        assertTrue("Snapshots on local node must not exist", 
snpList.value().isEmpty());
+        for (Ignite g : G.allGrids()) {
+            MetricRegistry mreg = 
((IgniteEx)g).context().metric().registry(SNAPSHOT_METRICS);
+
+            LongMetric startTime = mreg.findMetric("LastSnapshotStartTime");
+            LongMetric endTime = mreg.findMetric("LastSnapshotEndTime");
+            ObjectGauge<String> snpName = mreg.findMetric("LastSnapshotName");
+            ObjectGauge<String> errMsg = 
mreg.findMetric("LastSnapshotErrorMessage");
+            ObjectGauge<List<String>> snpList = 
mreg.findMetric("LocalSnapshotNames");
+
+            assertEquals("Snapshot start time must be undefined prior to 
snapshot operation started.",
+                0, startTime.value());
+            assertEquals("Snapshot end time must be undefined to snapshot 
operation started.",
+                0, endTime.value());
+            assertTrue("Snapshot name must not exist prior to snapshot 
operation started.", snpName.value().isEmpty());
+            assertTrue("Snapshot error message must null prior to snapshot 
operation started.", errMsg.value().isEmpty());
+            assertTrue("Snapshots on local node must not exist", 
snpList.value().isEmpty());
+        }
 
         long cutoffStartTime = U.currentTimeMillis();
 
-        IgniteFuture<Void> fut0 = snp(ignite).createSnapshot(SNAPSHOT_NAME, 
null, false, onlyPrimary);
+        IgniteFuture<Void> fut = snp(ignite).createSnapshot(SNAPSHOT_NAME, 
null, false, onlyPrimary);
 
         U.await(deltaApply);
 
-        assertTrue("Snapshot start time must be set prior to snapshot 
operation started " +
-            "[startTime=" + startTime.value() + ", cutoffTime=" + 
cutoffStartTime + ']',
-            startTime.value() >= cutoffStartTime);
-        assertEquals("Snapshot end time must be zero prior to snapshot 
operation started.",
-            0, endTime.value());
-        assertEquals("Snapshot name must be set prior to snapshot operation 
started.",
-            SNAPSHOT_NAME, snpName.value());
-        assertTrue("Snapshot error message must null prior to snapshot 
operation started.",
-            errMsg.value().isEmpty());
-
-        IgniteFuture<Void> fut1 = snp(grid(1)).createSnapshot(newSnapshotName, 
null, false, onlyPrimary);
-
-        assertThrowsWithCause((Callable<Object>)fut1::get, 
IgniteException.class);
+        for (Ignite g : G.allGrids()) {
+            MetricRegistry mreg = 
((IgniteEx)g).context().metric().registry(SNAPSHOT_METRICS);
+
+            LongMetric startTime = mreg.findMetric("LastSnapshotStartTime");
+            LongMetric endTime = mreg.findMetric("LastSnapshotEndTime");
+            ObjectGauge<String> snpName = mreg.findMetric("LastSnapshotName");
+            ObjectGauge<String> errMsg = 
mreg.findMetric("LastSnapshotErrorMessage");
+
+            assertTrue("Snapshot start time must be set prior to snapshot 
operation started " +
+                    "[startTime=" + startTime.value() + ", cutoffTime=" + 
cutoffStartTime + ']',
+                startTime.value() >= cutoffStartTime);
+            assertEquals("Snapshot end time must be zero prior to snapshot 
operation started.",
+                0, endTime.value());
+            assertEquals("Snapshot name must be set prior to snapshot 
operation started.",
+                SNAPSHOT_NAME, snpName.value());
+            assertTrue("Snapshot error message must null prior to snapshot 
operation started.",
+                errMsg.value().isEmpty());
+        }
 
-        MetricRegistry mreg1 = 
grid(1).context().metric().registry(SNAPSHOT_METRICS);
+        deltaBlock.countDown();
 
-        LongMetric startTime1 = mreg1.findMetric("LastSnapshotStartTime");
-        LongMetric endTime1 = mreg1.findMetric("LastSnapshotEndTime");
-        ObjectGauge<String> snpName1 = mreg1.findMetric("LastSnapshotName");
-        ObjectGauge<String> errMsg1 = 
mreg1.findMetric("LastSnapshotErrorMessage");
+        fut.get();
 
-        assertTrue("Snapshot start time must be greater than zero for finished 
snapshot.",
-            startTime1.value() > 0);
-        assertEquals("Snapshot end time must zero for failed on start 
snapshots.",
-            0, endTime1.value());
-        assertEquals("Snapshot name must be set when snapshot operation 
already finished.",
-            newSnapshotName, snpName1.value());
-        assertNotNull("Concurrent snapshot operation must failed.",
-            errMsg1.value());
+        for (Ignite g : G.allGrids()) {
+            MetricRegistry mreg = 
((IgniteEx)g).context().metric().registry(SNAPSHOT_METRICS);
 
-        deltaBlock.countDown();
+            LongMetric startTime = mreg.findMetric("LastSnapshotStartTime");
+            LongMetric endTime = mreg.findMetric("LastSnapshotEndTime");
 
-        fut0.get();
-
-        assertTrue("Snapshot start time must be greater than zero for finished 
snapshot.",
-            startTime.value() > 0);
-        assertTrue("Snapshot end time must be greater than zero for finished 
snapshot.",
-            endTime.value() > 0);
-        assertEquals("Snapshot name must be set when snapshot operation 
already finished.",
-            SNAPSHOT_NAME, snpName.value());
-        assertTrue("Concurrent snapshot operation must finished successfully.",
-            errMsg.value().isEmpty());
-        assertEquals("Only the first snapshot must be created and stored on 
disk.",
-            Collections.singletonList(SNAPSHOT_NAME), snpList.value());
+            waitForCondition(() -> endTime.value() != 0L && startTime.value() 
!= 0 && endTime.value() > startTime.value(),

Review Comment:
   Ignored result of `waitForCondition`



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to