Repository: ignite Updated Branches: refs/heads/ignite-601 [created] 8a7d3b470
ignite-601 Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d7ce114a Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d7ce114a Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d7ce114a Branch: refs/heads/ignite-601 Commit: d7ce114a8e175e26cad6c7b97f18d0d76d105a3c Parents: a8d3990 Author: sboikov <[email protected]> Authored: Thu Dec 20 00:53:09 2018 +0300 Committer: sboikov <[email protected]> Committed: Thu Dec 20 23:59:08 2018 +0300 ---------------------------------------------------------------------- .../processors/cache/GridCacheAdapter.java | 34 +++------- .../dht/colocated/GridDhtColocatedCache.java | 14 ---- .../GridCacheMultiNodeLockAbstractTest.java | 71 +++++--------------- .../GridCacheNodeFailureAbstractTest.java | 6 -- ...idCachePartitionedMultiNodeLockSelfTest.java | 37 ---------- ...ridCacheReplicatedMultiNodeLockSelfTest.java | 5 -- .../GridCacheReplicatedMultiNodeSelfTest.java | 5 -- ...licatedNearOnlyMultiNodeFullApiSelfTest.java | 6 -- 8 files changed, 29 insertions(+), 149 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java index a1c403b..657b510 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java @@ -3526,7 +3526,15 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V try { GridCacheEntryEx entry = peekEx(cacheKey); - return entry != null && entry.lockedByAny(); + if (entry != null) { + boolean res = entry.lockedByAny(); + + entry.touch(null); + + return res; + } + + return false; } catch (GridCacheEntryRemovedException ignore) { // No-op. @@ -3541,29 +3549,9 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V if (keyCheck) validateCacheKey(key); - try { - KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); - - GridCacheEntryEx e = entry0(cacheKey, - ctx.shared().exchange().readyAffinityVersion(), - false, - false); - - if (e == null) - return false; - - // Delegate to near if dht. - if (e.isDht() && CU.isNearEnabled(ctx)) { - IgniteInternalCache<K, V> near = ctx.isDht() ? ctx.dht().near() : ctx.near(); - - return near.isLockedByThread(key) || e.lockedByThread(); - } + KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); - return e.lockedByThread(); - } - catch (GridCacheEntryRemovedException ignore) { - return false; - } + return ctx.mvcc().isLockedByThread(ctx.txKey(cacheKey), Thread.currentThread().getId()); } /** {@inheritDoc} */ http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java index a6ac902..51196a8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java @@ -162,20 +162,6 @@ public class GridDhtColocatedCache<K, V> extends GridDhtTransactionalCacheAdapte } /** {@inheritDoc} */ - @Override public boolean isLocked(K key) { - KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); - - return ctx.mvcc().isLockedByThread(ctx.txKey(cacheKey), -1); - } - - /** {@inheritDoc} */ - @Override public boolean isLockedByThread(K key) { - KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); - - return ctx.mvcc().isLockedByThread(ctx.txKey(cacheKey), Thread.currentThread().getId()); - } - - /** {@inheritDoc} */ @Override protected IgniteInternalFuture<V> getAsync(final K key, boolean forcePrimary, boolean skipTx, http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java index 4559762..fed3342 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheMultiNodeLockAbstractTest.java @@ -31,13 +31,13 @@ import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.events.CacheEvent; import org.apache.ignite.events.Event; import org.apache.ignite.internal.IgniteKernal; -import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter; -import org.apache.ignite.internal.processors.cache.distributed.near.GridNearCacheAdapter; +import org.apache.ignite.internal.util.lang.GridAbsPredicate; import org.apache.ignite.lang.IgnitePredicate; 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.GridTestThread; +import org.apache.ignite.testframework.GridTestUtils; import org.apache.ignite.testframework.MvccFeatureChecker; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; import org.jetbrains.annotations.Nullable; @@ -108,13 +108,6 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr */ protected abstract CacheConfiguration cacheConfiguration(); - /** - * @return {@code True} for partitioned caches. - */ - protected boolean partitioned() { - return false; - } - /** {@inheritDoc} */ @Override protected void beforeTestsStarted() throws Exception { ignite1 = startGrid(1); @@ -187,25 +180,16 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr * @param key Key. * @throws IgniteCheckedException If failed. */ - @SuppressWarnings({"BusyWait"}) private void checkUnlocked(IgniteCache<Integer,String> cache, Integer key) throws IgniteCheckedException { assert !cache.isLocalLocked(key, true); - if (partitioned()) { - for(int i = 0; i < 200; i++) - if (cache.isLocalLocked(key, false)) { - try { - Thread.sleep(10); - } - catch (InterruptedException e) { - e.printStackTrace(); - } - } - else - return; - } + GridTestUtils.waitForCondition(new GridAbsPredicate() { + @Override public boolean apply() { + return !cache.isLocalLocked(key, false); + } + }, 5000); - assertFalse("Key locked [key=" + key + ", entries=" + entries(key) + "]", cache.isLocalLocked(key, false)); + assertFalse("Key locked [key=" + key + "]", cache.isLocalLocked(key, false)); } /** @@ -257,29 +241,6 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr } /** - * Entries for key. - * - * @param key Key. - * @return Entries. - * @throws IgniteCheckedException If failed. - */ - private String entries(int key) throws IgniteCheckedException { - if (partitioned()) { - GridNearCacheAdapter<Integer, String> near1 = near(1); - GridNearCacheAdapter<Integer, String> near2 = near(2); - - GridDhtCacheAdapter<Integer, String> dht1 = dht(1); - GridDhtCacheAdapter<Integer, String> dht2 = dht(2); - - return "Entries [ne1=" + near1.peekEx(key) + ", de1=" + dht1.peekEx(key) + ", ne2=" + near2.peekEx(key) + - ", de2=" + dht2.peekEx(key) + ']'; - } - - return "Entries [e1=" + "(" + key + ", " + ((IgniteKernal)ignite1).internalCache(DEFAULT_CACHE_NAME).get(key) + ")" - + ", e2=" + "(" + key + ", " + ((IgniteKernal)ignite2).internalCache(DEFAULT_CACHE_NAME).get(key) + ")" + ']'; - } - - /** * @throws Exception If test fails. */ @Test @@ -293,15 +254,15 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr lock1_1.lock(); try { - assert cache1.isLocalLocked(1, false) : entries(1); + assert cache1.isLocalLocked(1, false); assert cache1.isLocalLocked(1, true); - assert cache2.isLocalLocked(1, false) : entries(1); + assert cache2.isLocalLocked(1, false); assert !cache2.isLocalLocked(1, true); assert !lock2_1.tryLock(); - assert cache2.isLocalLocked(1, false) : entries(1); + assert cache2.isLocalLocked(1, false); assert !cache2.isLocalLocked(1, true); } finally { @@ -315,17 +276,17 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr lock2_1.lock(); try { - assert cache2.isLocalLocked(1, false) : entries(1); + assert cache2.isLocalLocked(1, false); assert cache2.isLocalLocked(1, true); - assert cache1.isLocalLocked(1, false) : entries(1); + assert cache1.isLocalLocked(1, false); assert !cache1.isLocalLocked(1, true); addListener(ignite1, new UnlockListener(latch, 1)); assert !lock1_1.tryLock(); - assert cache1.isLocalLocked(1, false) : entries(1); + assert cache1.isLocalLocked(1, false); assert !cache1.isLocalLocked(1, true); } finally { @@ -421,6 +382,8 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr */ @Test public void testLockReentry() throws IgniteCheckedException { + fail("https://issues.apache.org/jira/browse/IGNITE-835"); + IgniteCache<Integer, String> cache = ignite1.cache(DEFAULT_CACHE_NAME); Lock lock = cache.lock(1); @@ -450,6 +413,8 @@ public abstract class GridCacheMultiNodeLockAbstractTest extends GridCommonAbstr */ @Test public void testLockMultithreaded() throws Exception { + fail("https://issues.apache.org/jira/browse/IGNITE-835"); + final IgniteCache<Integer, String> cache = ignite1.cache(DEFAULT_CACHE_NAME); final CountDownLatch l1 = new CountDownLatch(1); http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java index 9b82354..75ccc7d 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheNodeFailureAbstractTest.java @@ -151,9 +151,6 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac /** * @throws IgniteCheckedException If test failed. - * - * Note: test was disabled for REPPLICATED cache case because IGNITE-601. - * This comment should be removed if test passed stably. */ @Test public void testPessimisticReadCommitted() throws Throwable { @@ -249,9 +246,6 @@ public abstract class GridCacheNodeFailureAbstractTest extends GridCommonAbstrac /** * @throws Exception If check failed. - * - * Note: test was disabled for REPPLICATED cache case because IGNITE-601. - * This comment should be removed if test passed stably. */ @Test public void testLock() throws Exception { http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeLockSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeLockSelfTest.java index e1d77d0..cce6097 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeLockSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCachePartitionedMultiNodeLockSelfTest.java @@ -17,11 +17,9 @@ package org.apache.ignite.internal.processors.cache.distributed.near; -import org.apache.ignite.IgniteCheckedException; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.NearCacheConfiguration; import org.apache.ignite.internal.processors.cache.distributed.GridCacheMultiNodeLockAbstractTest; -import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; @@ -44,39 +42,4 @@ public class GridCachePartitionedMultiNodeLockSelfTest extends GridCacheMultiNod return cc; } - - /** {@inheritDoc} */ - @Override protected boolean partitioned() { - return true; - } - - /** {@inheritDoc} */ - @Test - @Override public void testBasicLock() throws Exception { - super.testBasicLock(); - } - - /** {@inheritDoc} */ - @Test - @Override public void testLockMultithreaded() throws Exception { - super.testLockMultithreaded(); - } - - /** {@inheritDoc} */ - @Test - @Override public void testLockReentry() throws IgniteCheckedException { - super.testLockReentry(); - } - - /** {@inheritDoc} */ - @Test - @Override public void testMultiNodeLock() throws Exception { - super.testMultiNodeLock(); - } - - /** {@inheritDoc} */ - @Test - @Override public void testMultiNodeLockWithKeyLists() throws Exception { - super.testMultiNodeLockWithKeyLists(); - } } http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeLockSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeLockSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeLockSelfTest.java index a340244..87f4b6e 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeLockSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeLockSelfTest.java @@ -27,11 +27,6 @@ import static org.apache.ignite.cache.CacheMode.REPLICATED; */ public class GridCacheReplicatedMultiNodeLockSelfTest extends GridCacheMultiNodeLockAbstractTest { /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-601"); - } - - /** {@inheritDoc} */ @Override protected CacheConfiguration cacheConfiguration() { CacheConfiguration cacheCfg = defaultCacheConfiguration(); http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeSelfTest.java index f1eed3a..4284947 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedMultiNodeSelfTest.java @@ -28,11 +28,6 @@ import static org.apache.ignite.cache.CacheMode.REPLICATED; */ public class GridCacheReplicatedMultiNodeSelfTest extends GridCacheMultiNodeAbstractTest { /** {@inheritDoc} */ - @Override protected void beforeTest() throws Exception { - fail("https://issues.apache.org/jira/browse/IGNITE-601"); - } - - /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName); http://git-wip-us.apache.org/repos/asf/ignite/blob/d7ce114a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest.java index 7e1d3b0..7244bd0 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/replicated/GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest.java @@ -30,10 +30,4 @@ public class GridCacheReplicatedNearOnlyMultiNodeFullApiSelfTest extends GridCac @Override protected CacheMode cacheMode() { return REPLICATED; } - - // TODO: remove when IGNITE-601 is fixed. - /** {@inheritDoc} */ - @Override protected boolean lockingEnabled() { - return false; - } } \ No newline at end of file
