You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/01/23 11:45:37 UTC

[ignite] branch ignite-11030-test updated: IGNITE-11030 Hacks to dump page data

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

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


The following commit(s) were added to refs/heads/ignite-11030-test by this push:
     new 5c73e78  IGNITE-11030 Hacks to dump page data
5c73e78 is described below

commit 5c73e7872d0b59b949cb34c098c4318d75bfa27d
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Wed Jan 23 14:45:31 2019 +0300

    IGNITE-11030 Hacks to dump page data
---
 .../cache/persistence/pagemem/PageMemoryImpl.java    | 20 +++++++++++++++++++-
 .../cache/persistence/db/IgniteTcBotSandboxTest.java |  5 +++--
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
index 88f7ec2..865fa00 100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
@@ -34,6 +34,7 @@ import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.ReentrantReadWriteLock;
+import javax.xml.bind.DatatypeConverter;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
@@ -1548,7 +1549,8 @@ public class PageMemoryImpl implements PageMemoryEx {
             long pageId = PageIO.getPageId(page + PAGE_OVERHEAD);
 
             assert pageId != 0 : U.hexLong(PageHeader.readPageId(page));
-            assert PageIO.getVersion(page + PAGE_OVERHEAD) != 0 : U.hexLong(pageId);
+            assert PageIO.getVersion(page + PAGE_OVERHEAD) != 0 : dumpPage(pageId, page,
+                fullId.groupId());
             assert PageIO.getType(page + PAGE_OVERHEAD) != 0 : U.hexLong(pageId);
 
             try {
@@ -1566,6 +1568,22 @@ public class PageMemoryImpl implements PageMemoryEx {
         }
     }
 
+    @NotNull private String dumpPage(long pageId, long page, int grpId) {
+        int pageIdx = PageIdUtils.pageIndex(pageId);
+        int partId = PageIdUtils.partId(pageId);
+
+        int pageSize = pageSize();
+        byte[] data = new byte[pageSize];
+
+        for (int i = 0; i < pageSize; i++)
+            data[i] = GridUnsafe.getByte(page + PAGE_OVERHEAD + i);
+
+        long off = (long)pageIdx * pageSize;
+        return U.hexLong(pageId) + "(grpId=" + grpId + ", pageIdx=" + pageIdx + ", partId=" + partId + ",offH=" +
+            Long.toHexString(off) + ")"
+            + ": " + DatatypeConverter.printHexBinary(data);
+    }
+
     /**
      * @param absPtr Absolute pointer to the page.
      * @return {@code True} if write lock acquired for the page.
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotSandboxTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotSandboxTest.java
index 58969d0..4c8d9e9 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotSandboxTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteTcBotSandboxTest.java
@@ -27,6 +27,7 @@ import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.WALMode;
 import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.junit.Test;
 
@@ -36,8 +37,8 @@ public class IgniteTcBotSandboxTest extends GridCommonAbstractTest {
 
     @Test
     public void readTcBotDb() throws Exception {
-        //IgniteConfiguration cfg = new IgniteConfiguration();
-       // Ignite start = Ignition.start(cfg);
+        System.out.println("Cache name hash code: " + U.safeAbs(TEST_HIST_CACHE_NAME.hashCode()));
+
         IgniteEx ignite = startGrid(0);
         ignite.cluster().active(true);