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 16:42:08 UTC
[ignite] branch ignite-11030-test updated: IGNITE-11030 Additional
protection from different paritions in init new page record
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 6db1c50 IGNITE-11030 Additional protection from different paritions in init new page record
6db1c50 is described below
commit 6db1c5054599c85cab18b61e8bcdd8e15aa3476a
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Wed Jan 23 19:42:03 2019 +0300
IGNITE-11030 Additional protection from different paritions in init new page record
---
.../internal/pagemem/wal/record/delta/InitNewPageRecord.java | 7 +++++++
.../cache/persistence/db/IgniteTcBotSandboxTest.java | 12 +++++++++---
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
index d0ba2aa..c062b76 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/InitNewPageRecord.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.pagemem.wal.record.delta;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.internal.pagemem.PageIdUtils;
import org.apache.ignite.internal.pagemem.PageMemory;
import org.apache.ignite.internal.processors.cache.persistence.tree.io.PageIO;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
@@ -51,6 +52,12 @@ public class InitNewPageRecord extends PageDeltaRecord {
this.ioType = ioType;
this.ioVer = ioVer;
this.newPageId = newPageId;
+
+ if (PageIdUtils.partId(newPageId()) != PageIdUtils.partId(pageId())) {
+ throw new AssertionError("Partition consistency failure: " +
+ "newPageId=" + Long.toHexString(newPageId) + " " +
+ "pageId=" + Long.toHexString(pageId));
+ }
}
/** {@inheritDoc} */
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 991bd0b..8962fdf 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
@@ -30,6 +30,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.pagemem.PageIdUtils;
import org.apache.ignite.internal.pagemem.wal.WALIterator;
import org.apache.ignite.internal.pagemem.wal.WALPointer;
import org.apache.ignite.internal.pagemem.wal.record.PageSnapshot;
@@ -115,11 +116,16 @@ public class IgniteTcBotSandboxTest extends GridCommonAbstractTest {
InitNewPageRecord initRec = (InitNewPageRecord)rec;
if (initRec.groupId() == grpId
- && initRec.pageId() == pageId) {
+ && (initRec.pageId() == pageId || initRec.newPageId() == pageId)) {
System.out.println("InitNewPageRecord:: pos=" + pos
- + ", rec=" + initRec.toString());
+ + ", rec=" + initRec.toString() + ", ioType=" + initRec.ioType()
+ + ", ioVersion=" + initRec.ioVersion());
+
+ assertEquals(PageIdUtils.partId(initRec.newPageId()),
+ PageIdUtils.partId(initRec.pageId()));
}
- } else if (rec instanceof PageSnapshot) {
+ }
+ else if (rec instanceof PageSnapshot) {
PageSnapshot snapshot = (PageSnapshot)rec;
if (snapshot.fullPageId().groupId() == grpId