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 <[email protected]> AuthorDate: Fri Mar 22 13:34:58 2019 +0300 IGNITE-1090 Fixed GridCachePartitionedOptimisticTxNodeRestartTest - Fixes #6140. Signed-off-by: Alexey Goncharuk <[email protected]> (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));
