You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2019/06/05 11:08:18 UTC
[ignite] 15/31: IGNITE-1090 Fixed
GridCachePartitionedOptimisticTxNodeRestartTest - Fixes #6140.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch gg-19225
in repository https://gitbox.apache.org/repos/asf/ignite.git
commit bf3a7023684fca3d3acbcfd8a3770264129a495c
Author: Alexey Goncharuk <al...@gmail.com>
AuthorDate: Fri Mar 22 13:34:58 2019 +0300
IGNITE-1090 Fixed GridCachePartitionedOptimisticTxNodeRestartTest - Fixes #6140.
Signed-off-by: Alexey Goncharuk <al...@gmail.com>
(cherry picked from commit 5307b0a)
---
.../ignite/internal/processors/cache/GridCacheMvcc.java | 5 +++--
.../cache/distributed/GridDistributedCacheEntry.java | 2 +-
.../processors/cache/transactions/IgniteTxHandler.java | 6 ++++--
.../processors/cache/transactions/IgniteTxManager.java | 5 +----
.../internal/processors/cache/GridCacheTestEntryEx.java | 2 +-
.../GridCachePartitionedOptimisticTxNodeRestartTest.java | 12 +++---------
.../distributed/near/NearCacheMultithreadedUpdateTest.java | 2 +-
.../ignite/testsuites/IgniteCacheRestartTestSuite.java | 8 +++++---
8 files changed, 19 insertions(+), 23 deletions(-)
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
index d822eae..5464bf4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMvcc.java
@@ -974,8 +974,9 @@ public final class GridCacheMvcc {
* as system invalidate and marks these candidates as owned and used.
*
* @param ver Version to salvage.
+ * @param near {@code True} If salvage near cache candidate.
*/
- public void salvageRemote(GridCacheVersion ver) {
+ public void salvageRemote(GridCacheVersion ver, boolean near) {
assert ver != null;
GridCacheMvccCandidate cand = candidate(rmts, ver);
@@ -994,7 +995,7 @@ public final class GridCacheMvcc {
// Only Near and DHT remote candidates should be released.
assert !rmt.nearLocal();
- IgniteInternalTx tx = cctx.tm().tx(rmt.version());
+ IgniteInternalTx tx = near ? cctx.tm().nearTx(rmt.version()) : cctx.tm().tx(rmt.version());
if (tx != null) {
tx.systemInvalidate(true);
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
index eeaea97..d948f47 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedCacheEntry.java
@@ -613,7 +613,7 @@ public class GridDistributedCacheEntry extends GridCacheMapEntry {
}
if (sysInvalidate && baseVer != null)
- mvcc.salvageRemote(baseVer);
+ mvcc.salvageRemote(baseVer, isNear());
owner = mvcc.doneRemote(lockVer,
maskNull(pendingVers),
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index 8f5f642..106b910 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -1431,8 +1431,10 @@ public class IgniteTxHandler {
try {
if (req.commit() || req.isSystemInvalidate()) {
tx.commitVersion(req.commitVersion());
- tx.invalidate(req.isInvalidate());
- tx.systemInvalidate(req.isSystemInvalidate());
+ if (req.isInvalidate())
+ tx.invalidate(true);
+ if (req.isSystemInvalidate())
+ tx.systemInvalidate(true);
tx.mvccSnapshot(req.mvccSnapshot());
// Complete remote candidates.
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index 817ff27..4230125 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -1658,10 +1658,7 @@ public class IgniteTxManager extends GridCacheSharedManagerAdapter {
public boolean onOwnerChanged(GridCacheEntryEx entry, GridCacheMvccCandidate owner) {
// We only care about acquired locks.
if (owner != null) {
- IgniteTxAdapter tx = tx(owner.version());
-
- if (tx == null)
- tx = nearTx(owner.version());
+ IgniteTxAdapter tx = entry.isNear() ? nearTx(owner.version()) : tx(owner.version());
if (tx != null) {
if (!tx.local()) {
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index 60f15b2..551978d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@ -213,7 +213,7 @@ public class GridCacheTestEntryEx extends GridMetadataAwareAdapter implements Gr
* @param baseVer Base version.
*/
void salvageRemote(GridCacheVersion baseVer) {
- mvcc.salvageRemote(baseVer);
+ mvcc.salvageRemote(baseVer, false);
}
/**
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
index c72408e..11c303d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedOptimisticTxNodeRestartTest.java
@@ -1,12 +1,12 @@
/*
* Copyright 2019 GridGain Systems, Inc. and Contributors.
- *
+ *
* Licensed under the GridGain Community Edition License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* https://www.gridgain.com/products/software/community-edition/gridgain-community-edition-license
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -36,12 +36,6 @@ import static org.apache.ignite.transactions.TransactionConcurrency.OPTIMISTIC;
@RunWith(JUnit4.class)
public class GridCachePartitionedOptimisticTxNodeRestartTest extends GridCacheAbstractNodeRestartSelfTest {
/** {@inheritDoc} */
- @Override protected void beforeTest() throws Exception {
- if (nearEnabled())
- fail("https://issues.apache.org/jira/browse/IGNITE-1090");
- }
-
- /** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
IgniteConfiguration c = super.getConfiguration(igniteInstanceName);
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
index 6bfbc33..d66e827 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/NearCacheMultithreadedUpdateTest.java
@@ -45,7 +45,7 @@ public class NearCacheMultithreadedUpdateTest extends GridCommonAbstractTest {
private boolean client;
/** */
- private final int SRV_CNT = 3;
+ private static final int SRV_CNT = 3;
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
index ebc8c57..49154f2 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheRestartTestSuite.java
@@ -1,12 +1,12 @@
/*
* Copyright 2019 GridGain Systems, Inc. and Contributors.
- *
+ *
* Licensed under the GridGain Community Edition License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* https://www.gridgain.com/products/software/community-edition/gridgain-community-edition-license
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -23,6 +23,7 @@ import org.apache.ignite.internal.processors.cache.distributed.IgniteCacheNearRe
import org.apache.ignite.internal.processors.cache.distributed.dht.GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest;
import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedNodeRestartTest;
import org.apache.ignite.internal.processors.cache.distributed.near.GridCachePartitionedOptimisticTxNodeRestartTest;
+import org.apache.ignite.internal.processors.cache.distributed.near.NearCacheMultithreadedUpdateTest;
import org.apache.ignite.internal.processors.cache.distributed.replicated.GridCacheReplicatedNodeRestartSelfTest;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;
@@ -43,6 +44,7 @@ public class IgniteCacheRestartTestSuite {
suite.addTest(new JUnit4TestAdapter(GridCacheReplicatedNodeRestartSelfTest.class));
suite.addTest(new JUnit4TestAdapter(GridCachePartitionedNearDisabledOptimisticTxNodeRestartTest.class));
suite.addTest(new JUnit4TestAdapter(IgniteCacheNearRestartRollbackSelfTest.class));
+ suite.addTest(new JUnit4TestAdapter(NearCacheMultithreadedUpdateTest.class));
suite.addTest(new JUnit4TestAdapter(IgniteCacheCreateRestartSelfTest.class));