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 2018/05/24 12:52:07 UTC

[44/50] [abbrv] ignite git commit: IGNITE-5789 Fix for case server was restarted, client doesn't create caches defined in client's configuration. - Fixes #3905.

IGNITE-5789 Fix for case server was restarted, client doesn't create caches defined in client's configuration. - Fixes #3905.

Signed-off-by: dpavlov <dp...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d821d099
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d821d099
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d821d099

Branch: refs/heads/ignite-5789-1
Commit: d821d0999749a1be318a2106d736542272a42ab0
Parents: a3a619b
Author: vk <ka...@gmail.com>
Authored: Wed May 23 14:59:58 2018 +0300
Committer: dpavlov <dp...@apache.org>
Committed: Wed May 23 14:59:58 2018 +0300

----------------------------------------------------------------------
 .../GridDhtPartitionsExchangeFuture.java        | 24 +++++++++++++++++
 .../ClientReconnectAfterClusterRestartTest.java | 27 ++++++++++----------
 2 files changed, 38 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d821d099/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index c62b067..fe0ce2b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@ -44,6 +44,7 @@ import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CacheRebalanceMode;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.configuration.CacheConfiguration;
 import org.apache.ignite.configuration.NearCacheConfiguration;
 import org.apache.ignite.events.DiscoveryEvent;
 import org.apache.ignite.internal.IgniteClientDisconnectedCheckedException;
@@ -72,6 +73,7 @@ import org.apache.ignite.internal.processors.cache.ExchangeContext;
 import org.apache.ignite.internal.processors.cache.ExchangeDiscoveryEvents;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
 import org.apache.ignite.internal.processors.cache.GridCacheMvccCandidate;
+import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
 import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import org.apache.ignite.internal.processors.cache.LocalJoinCachesContext;
 import org.apache.ignite.internal.processors.cache.StateChangeRequest;
@@ -797,6 +799,27 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
         }
 
         cctx.cache().startCachesOnLocalJoin(locJoinCtx, initialVersion());
+
+        ensureClientCachesStarted();
+    }
+
+    /**
+     * Start client caches if absent.
+     */
+    private void ensureClientCachesStarted() {
+        GridCacheProcessor cacheProcessor = cctx.cache();
+
+        Set<String> cacheNames = new HashSet<>(cacheProcessor.cacheNames());
+
+        List<CacheConfiguration> notStartedCacheConfigs = new ArrayList<>();
+
+        for (CacheConfiguration cCfg : cctx.gridConfig().getCacheConfiguration()) {
+            if (!cacheNames.contains(cCfg.getName()))
+                notStartedCacheConfigs.add(cCfg);
+        }
+
+        if (!notStartedCacheConfigs.isEmpty())
+            cacheProcessor.dynamicStartCaches(notStartedCacheConfigs, false, false, false);
     }
 
     /**
@@ -3854,6 +3877,7 @@ public class GridDhtPartitionsExchangeFuture extends GridDhtTopologyFutureAdapte
         /** */
         NONE
     }
+
     /**
      *
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/d821d099/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
index 505d373..9012161 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/ClientReconnectAfterClusterRestartTest.java
@@ -18,6 +18,9 @@
 package org.apache.ignite.internal.processors.cache;
 
 import javax.cache.CacheException;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
 import org.apache.ignite.Ignite;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.IgniteClientDisconnectedException;
@@ -33,23 +36,21 @@ import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.events.Event;
 import org.apache.ignite.events.EventType;
 import org.apache.ignite.internal.binary.BinaryMarshaller;
-import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
 import org.jetbrains.annotations.NotNull;
 
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-
 /**
  */
 public class ClientReconnectAfterClusterRestartTest extends GridCommonAbstractTest {
+    /** Server id. */
+    private static final int SERVER_ID = 0;
+
     /** Client id. */
-    public static final int CLIENT_ID = 1;
+    private static final int CLIENT_ID = 1;
 
     /** Cache params. */
-    public static final String CACHE_PARAMS = "PPRB_PARAMS";
+    private static final String CACHE_PARAMS = "PPRB_PARAMS";
 
     /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
@@ -58,9 +59,9 @@ public class ClientReconnectAfterClusterRestartTest extends GridCommonAbstractTe
         cfg.setMarshaller(new BinaryMarshaller());
         cfg.setIncludeEventTypes(EventType.EVTS_CACHE);
 
-        if (getTestIgniteInstanceName(CLIENT_ID).equals(igniteInstanceName))
+        if (getTestIgniteInstanceName(CLIENT_ID).equals(igniteInstanceName)) {
             cfg.setClientMode(true);
-        else {
+
             CacheConfiguration ccfg = getCacheConfiguration();
 
             cfg.setCacheConfiguration(ccfg);
@@ -88,7 +89,7 @@ public class ClientReconnectAfterClusterRestartTest extends GridCommonAbstractTe
 
         LinkedHashMap<String, String> fields = new LinkedHashMap<>();
 
-        fields.put("ID", "java.lang.Long" );
+        fields.put("ID", "java.lang.Long");
         fields.put("PARTITIONID", "java.lang.Long");
         fields.put("CLIENTID", "java.lang.Long");
         fields.put("PARAMETRCODE", "java.lang.Long");
@@ -114,9 +115,9 @@ public class ClientReconnectAfterClusterRestartTest extends GridCommonAbstractTe
     /** */
     public void testReconnectClient() throws Exception {
         try {
-            startGrid(0);
+            startGrid(SERVER_ID);
 
-            Ignite client = startGrid(1);
+            Ignite client = startGrid(CLIENT_ID);
 
             checkTopology(2);
 
@@ -162,7 +163,7 @@ public class ClientReconnectAfterClusterRestartTest extends GridCommonAbstractTe
 
             Thread.sleep(2_000);
 
-            startGrid(0);
+            startGrid(SERVER_ID);
 
             try {
                 assertNull(cache.get(1L));