You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/23 13:07:37 UTC

[14/18] ignite git commit: ignite-gg-12163 fix testPageRecoveryAfterFileCorruption

ignite-gg-12163 fix testPageRecoveryAfterFileCorruption


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

Branch: refs/heads/ignite-5075-pds
Commit: c95734eba2f0bba4ff8111c778267f404683eee0
Parents: a403ca8
Author: Dmitriy Govorukhin <dm...@gmail.com>
Authored: Mon May 22 17:50:11 2017 +0300
Committer: Dmitriy Govorukhin <dm...@gmail.com>
Committed: Mon May 22 17:50:11 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java    |  5 +-
 ...entStoreRecoveryAfterFileCorruptionTest.java | 59 +++++++++++++-------
 2 files changed, 43 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c95734eb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 3f26871..76ea847 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -1167,7 +1167,10 @@ public class GridCacheProcessor extends GridProcessorAdapter {
         cacheCtx.onStarted();
 
         if (log.isInfoEnabled())
-            log.info("Started cache [name=" + U.maskName(cfg.getName()) + ", memoryPolicyName=" + cfg.getMemoryPolicyName() + ", mode=" + cfg.getCacheMode() + ']');
+            log.info("Started cache [name=" + U.maskName(cfg.getName()) +
+                ", memoryPolicyName=" + cfg.getMemoryPolicyName() +
+                ", mode=" + cfg.getCacheMode() + ']'
+            );
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/c95734eb/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreRecoveryAfterFileCorruptionTest.java
----------------------------------------------------------------------
diff --git a/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreRecoveryAfterFileCorruptionTest.java b/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreRecoveryAfterFileCorruptionTest.java
index fbed6ee..fd77996 100644
--- a/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreRecoveryAfterFileCorruptionTest.java
+++ b/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreRecoveryAfterFileCorruptionTest.java
@@ -22,8 +22,10 @@ import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
 import java.nio.channels.FileChannel;
 import java.util.Collection;
+import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.CacheRebalanceMode;
+import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction;
 import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.MemoryConfiguration;
@@ -48,20 +50,35 @@ import org.apache.ignite.internal.processors.cache.database.pagemem.PageMemoryIm
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
 import org.apache.ignite.internal.processors.cache.database.wal.FileWriteAheadLogManager;
 import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 
+import static org.apache.ignite.internal.processors.cache.database.wal.FileWriteAheadLogManager.IGNITE_PDS_WAL_ALWAYS_WRITE_FULL_PAGES;
+
 /**
  *
  */
 public class IgnitePersistentStoreRecoveryAfterFileCorruptionTest extends GridCommonAbstractTest {
+    /** Ip finder. */
+    private static final TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
     /** Total pages. */
     private static final int totalPages = 1024;
 
+    /** Cache name. */
+    private final String cacheName = "cache";
+
+    /** Policy name. */
+    private final String policyName = "dfltMemPlc";
+
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 
-        CacheConfiguration ccfg = new CacheConfiguration("partitioned");
+        CacheConfiguration ccfg = new CacheConfiguration(cacheName);
+        ccfg.setAffinity(new RendezvousAffinityFunction(true, 1));
 
         ccfg.setRebalanceMode(CacheRebalanceMode.NONE);
 
@@ -71,12 +88,12 @@ public class IgnitePersistentStoreRecoveryAfterFileCorruptionTest extends GridCo
 
         MemoryPolicyConfiguration memPlcCfg = new MemoryPolicyConfiguration();
 
-        memPlcCfg.setName("dfltMemPlc");
+        memPlcCfg.setName(policyName);
         memPlcCfg.setInitialSize(1024 * 1024 * 1024);
         memPlcCfg.setMaxSize(1024 * 1024 * 1024);
 
         dbCfg.setMemoryPolicies(memPlcCfg);
-        dbCfg.setDefaultMemoryPolicyName("dfltMemPlc");
+        dbCfg.setDefaultMemoryPolicyName(policyName);
 
         cfg.setMemoryConfiguration(dbCfg);
 
@@ -86,12 +103,14 @@ public class IgnitePersistentStoreRecoveryAfterFileCorruptionTest extends GridCo
 
         cfg.setPersistenceConfiguration(pCfg);
 
+        cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(ipFinder));
+
         return cfg;
     }
 
     /** {@inheritDoc} */
     @Override protected void beforeTest() throws Exception {
-        System.setProperty(FileWriteAheadLogManager.IGNITE_PDS_WAL_ALWAYS_WRITE_FULL_PAGES, "true");
+        System.setProperty(IGNITE_PDS_WAL_ALWAYS_WRITE_FULL_PAGES, "true");
 
         stopAllGrids();
 
@@ -111,42 +130,42 @@ public class IgnitePersistentStoreRecoveryAfterFileCorruptionTest extends GridCo
      * @throws Exception if failed.
      */
     public void testPageRecoveryAfterFileCorruption() throws Exception {
-        fail(); //todo @Ed
-
         IgniteEx ig = startGrid(0);
 
-        GridCacheSharedContext<Object, Object> shared = ig.context().cache().context();
+        IgniteCache<Integer, Integer> cache = ig.cache(cacheName);
 
-        GridCacheDatabaseSharedManager dbMgr = (GridCacheDatabaseSharedManager)shared.database();
+        // Put for create data store and init meta page.
+        cache.put(1, 1);
 
-        IgnitePageStoreManager pageStore = shared.pageStore();
+        GridCacheSharedContext sharedCtx = ig.context().cache().context();
+
+        GridCacheDatabaseSharedManager psMgr = (GridCacheDatabaseSharedManager)sharedCtx.database();
+
+        FilePageStoreManager pageStore = (FilePageStoreManager)sharedCtx.pageStore();
 
         U.sleep(1_000);
 
         // Disable integrated checkpoint thread.
-        dbMgr.enableCheckpoints(false).get();
+        psMgr.enableCheckpoints(false).get();
 
-        PageMemory mem = shared.database().memoryPolicy(null).pageMemory();
+        PageMemory mem = sharedCtx.database().memoryPolicy(policyName).pageMemory();
 
-        int cacheId = shared.cache().cache("partitioned").context().cacheId();
+        int cacheId = sharedCtx.cache().cache(cacheName).context().cacheId();
 
         FullPageId[] pages = new FullPageId[totalPages];
 
-        for (int i = 0; i < totalPages; i++) {
-            FullPageId fullId = new FullPageId(mem.allocatePage(cacheId, 0, PageIdAllocator.FLAG_DATA), cacheId);
-
-            pages[i] = fullId;
-        }
+        for (int i = 0; i < totalPages; i++)
+            pages[i] = new FullPageId(mem.allocatePage(cacheId, 0, PageIdAllocator.FLAG_DATA), cacheId);
 
         generateWal(
             (PageMemoryImpl)mem,
-            pageStore,
-            shared.wal(),
+            sharedCtx.pageStore(),
+            sharedCtx.wal(),
             cacheId,
             pages
         );
 
-        eraseDataFromDisk((FilePageStoreManager)pageStore, cacheId, pages[0]);
+        eraseDataFromDisk(pageStore, cacheId, pages[0]);
 
         stopAllGrids();