IGNITE-15232 Fixed flaky CacheGroupKeyChangeTest#testWalArchiveCleanup (#9332)
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/encryption/CacheGroupKeyChangeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/encryption/CacheGroupKeyChangeTest.java
index 57a950a..6661e34 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/encryption/CacheGroupKeyChangeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/encryption/CacheGroupKeyChangeTest.java
@@ -129,10 +129,21 @@
}
/** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ super.beforeTest();
+
+ stopAllGrids();
+
+ cleanPersistenceDir();
+ }
+
+ /** {@inheritDoc} */
@Override protected void afterTest() throws Exception {
stopAllGrids();
cleanPersistenceDir();
+
+ super.afterTest();
}
/** @throws Exception If failed. */
@@ -723,8 +734,6 @@
*/
@Test
public void testWalArchiveCleanup() throws Exception {
- cleanPersistenceDir();
-
IgniteEx node = startGrid(GRID_0);
node.cluster().state(ClusterState.ACTIVE);
@@ -736,18 +745,12 @@
IgniteWriteAheadLogManager walMgr = node.context().cache().context().wal();
long reservedIdx = walMgr.currentSegment();
+ assertTrue(walMgr.reserve(new WALPointer(reservedIdx, 0, 0)));
- boolean reserved = walMgr.reserve(new WALPointer(reservedIdx, 0, 0));
- assertTrue(reserved);
+ while (walMgr.lastArchivedSegment() < reservedIdx) {
+ long val = ThreadLocalRandom.current().nextLong();
- IgniteInternalFuture<?> loadFut = loadDataAsync(node);
-
- // Wait until the reserved segment is moved to the archive.
- try {
- boolean success = waitForCondition(() -> walMgr.lastArchivedSegment() >= reservedIdx, MAX_AWAIT_MILLIS);
- assertTrue(success);
- } finally {
- loadFut.cancel();
+ node.cache(cacheName()).put(val, String.valueOf(val));
}
forceCheckpoint();
@@ -769,16 +772,10 @@
node.cluster().state(ClusterState.ACTIVE);
- loadFut = loadDataAsync(node);
+ while (node.context().encryption().groupKeyIds(grpId).size() != 1) {
+ long val = ThreadLocalRandom.current().nextLong();
- // Make sure that unused encryption key has been deleted.
- try {
- GridEncryptionManager encryptMgr = node.context().encryption();
-
- boolean success = waitForCondition(() -> encryptMgr.groupKeyIds(grpId).size() == 1, MAX_AWAIT_MILLIS);
- assertTrue(success);
- } finally {
- loadFut.cancel();
+ node.cache(cacheName()).put(val, String.valueOf(val));
}
checkGroupKey(grpId, INITIAL_KEY_ID + 1, MAX_AWAIT_MILLIS);