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

dpavlov pushed a commit to branch ignite-10779-2
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/ignite-10779-2 by this push:
     new ef3210b  IGNITE-10779 Unit test for reproducing forgotten counter 
increasing: next step to start checkpointer.
ef3210b is described below

commit ef3210bd6e546407e36dac2e1dd00b1ffe9a7771
Author: Dmitriy Pavlov <[email protected]>
AuthorDate: Fri Jan 18 18:59:29 2019 +0300

    IGNITE-10779 Unit test for reproducing forgotten counter increasing: next 
step to start checkpointer.
---
 .../GridCacheDatabaseSharedManager.java            |  4 ++-
 .../pagemem/IgniteThrottlingUnitTest.java          | 30 ++++++++++++++++++++++
 2 files changed, 33 insertions(+), 1 deletion(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index ce36bab..96f6760 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -3219,7 +3219,7 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
                 try {
                     chp = markCheckpointBegin(tracker);
                 }
-                catch (IgniteCheckedException e) {
+                catch (Exception e) {
                     if (curCpProgress != null)
                         curCpProgress.cpFinishFut.onDone(e);
 
@@ -3689,6 +3689,8 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
                         }
                         catch (RejectedExecutionException e) {
                             assert false : "Task should never be rejected by 
async runner";
+
+                            throw new IgniteException(e); //to protect from 
disabled asserts and call to failure handler
                         }
                 }
 
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
index 744fce9..09c404b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
@@ -17,7 +17,9 @@
 package org.apache.ignite.internal.processors.cache.persistence.pagemem;
 
 import java.io.File;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.LockSupport;
@@ -27,8 +29,11 @@ import 
org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.managers.encryption.GridEncryptionManager;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import org.apache.ignite.internal.processors.cache.CacheGroupContext;
 import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
+import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointFuture;
 import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointLockStateChecker;
 import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointWriteProgressSupplier;
 import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
@@ -301,6 +306,8 @@ public class IgniteThrottlingUnitTest {
     public void checkWrittenCounterIsIncreased() throws IgniteCheckedException 
{
         IgniteConfiguration cfg = new IgniteConfiguration();
         DataStorageConfiguration dsCfg = new DataStorageConfiguration();
+        int checkpointFreqMs = 5 * 1000;
+        dsCfg.setCheckpointFrequency(checkpointFreqMs);
         cfg.setDataStorageConfiguration(dsCfg);
 
         //instead of init default SPI
@@ -343,8 +350,13 @@ public class IgniteThrottlingUnitTest {
 
         //binding
         GridCacheProcessor cacheProcessor = mock(GridCacheProcessor.class);
+        List<CacheGroupContext> cacheGrpContexts = new ArrayList<>();
+        when(cacheProcessor.cacheGroups()).thenReturn(cacheGrpContexts);
+
         when(cacheProcessor.context()).thenReturn(sctx);
+
         when(kctx.cache()).thenReturn(cacheProcessor);
+        when(sctx.cache()).thenReturn(cacheProcessor);
 
         //start GCDSM
         GridCacheDatabaseSharedManager mgr = new 
GridCacheDatabaseSharedManager(kctx);
@@ -353,8 +365,26 @@ public class IgniteThrottlingUnitTest {
 
         assertNotNull(mgr.getCheckpointer());
 
+        Thread t = new Thread(() -> {
+            try {
+                mgr.onStateRestored(mock(AffinityTopologyVersion.class));
+            }
+            catch (IgniteCheckedException e) {
+                e.printStackTrace();
+            }
+        });
+        t.setDaemon(true);
+        t.start();
+
+        CheckpointFuture fut = mgr.forceCheckpoint("test");
+
+        fut.beginFuture().get();
+        assertNotNull(mgr.writtenPagesCounter());
+
         int startCnt = mgr.writtenPagesCounter().get();
 
+        fut.finishFuture().get();
+
 
         assertTrue(mgr.writtenPagesCounter().get() > startCnt);
     }

Reply via email to