cleanup memPlcMap on stop + add restart test
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/dde55064 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/dde55064 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/dde55064 Branch: refs/heads/ignite-2.1.2-exchange Commit: dde55064d7c899eac50d035abeb1e60049d30f00 Parents: bf3643d Author: Dmitriy Govorukhin <[email protected]> Authored: Sat Jun 17 12:03:17 2017 +0300 Committer: Dmitriy Govorukhin <[email protected]> Committed: Sat Jun 17 12:03:17 2017 +0300 ---------------------------------------------------------------------- .../IgniteCacheDatabaseSharedManager.java | 4 +++ .../IgniteStandByClusterTest.java | 38 ++++++++++++++++++-- 2 files changed, 39 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/dde55064/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java index 456e7b4..e1f1c9a 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/IgniteCacheDatabaseSharedManager.java @@ -674,6 +674,10 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap memPlc.memoryMetrics().getName(), e); } } + + memPlcMap.clear(); + + memPlcMap = null; } } http://git-wip-us.apache.org/repos/asf/ignite/blob/dde55064/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java index 647511e..5eebc94 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/standbycluster/IgniteStandByClusterTest.java @@ -145,7 +145,7 @@ public class IgniteStandByClusterTest extends GridCommonAbstractTest { assertTrue(!ig2.active()); assertTrue(!ig3.active()); - for (IgniteEx ig: Arrays.asList(ig1,ig2,ig3)){ + for (IgniteEx ig : Arrays.asList(ig1, ig2, ig3)) { Map<String, DynamicCacheDescriptor> desc = U.field(U.field(ig.context().cache(), "cachesInfo"), "registeredCaches"); assertEquals(0, desc.size()); @@ -157,7 +157,7 @@ public class IgniteStandByClusterTest extends GridCommonAbstractTest { assertTrue(ig2.active()); assertTrue(ig3.active()); - for (IgniteEx ig: Arrays.asList(ig1,ig2,ig3)){ + for (IgniteEx ig : Arrays.asList(ig1, ig2, ig3)) { Map<String, DynamicCacheDescriptor> desc = U.field( U.field(ig.context().cache(), "cachesInfo"), "registeredCaches"); @@ -209,7 +209,39 @@ public class IgniteStandByClusterTest extends GridCommonAbstractTest { assertEquals("1", cache.get(1)); } - private static class NodeFilterIgnoreByName implements IgnitePredicate<ClusterNode>{ + public void testRestartCluster() throws Exception { + IgniteEx ig1 = startGrid(getConfiguration("node1")); + IgniteEx ig2 = startGrid(getConfiguration("node2")); + IgniteEx ig3 = startGrid(getConfiguration("node3")); + + assertTrue(!ig1.active()); + assertTrue(!ig2.active()); + assertTrue(!ig3.active()); + + ig2.active(true); + + IgniteCache<Integer, String> cache = ig2.getOrCreateCache("cache"); + + for (int i = 0; i < 2048; i++) + cache.put(i, String.valueOf(i)); + + ig3.active(false); + + stopAllGrids(); + + ig1 = startGrid(getConfiguration("node1")); + ig2 = startGrid(getConfiguration("node2")); + ig3 = startGrid(getConfiguration("node3")); + + ig1.active(true); + + IgniteCache<Integer, String> cache2 = ig1.cache("cache"); + + for (int i = 0; i < 2048; i++) + assertEquals(String.valueOf(i), cache2.get(i)); + } + + private static class NodeFilterIgnoreByName implements IgnitePredicate<ClusterNode> { private final String name; private NodeFilterIgnoreByName(String name) {
