Pavel Pereslegin created IGNITE-14044:
----------------------------------------- Summary: Cache with node filter is not destroyed properly on the filtered node. Key: IGNITE-14044 URL: https://issues.apache.org/jira/browse/IGNITE-14044 Project: Ignite Issue Type: Bug Reporter: Pavel Pereslegin Steps to reproduce the problem: # Start 2 nodes # Create a cache with node filter (filter second node) # Destroy cache # Restart nodes Expected: cache was destroyed on both nodes. Actual: cache was destroyed only on one node, the second node cannot join the cluster with the following error: {noformat} Caused by: class org.apache.ignite.spi.IgniteSpiException: Joining node has caches with data which are not presented on cluster, it could mean that they were already destroyed, to add the node to cluster - remove directories with the caches[cache1] at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.checkFailedError(TcpDiscoverySpi.java:2052) at org.apache.ignite.spi.discovery.tcp.ServerImpl.joinTopology(ServerImpl.java:1197) at org.apache.ignite.spi.discovery.tcp.ServerImpl.spiStart(ServerImpl.java:472) at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.spiStart(TcpDiscoverySpi.java:2154) at org.apache.ignite.internal.managers.GridManagerAdapter.startSpi(GridManagerAdapter.java:278) ... 23 more {noformat} Reproducer {code:java} public class IgnitePdsDestroyCacheWithNodeFilterTest extends GridCommonAbstractTest { @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { return super.getConfiguration(igniteInstanceName) .setConsistentId(igniteInstanceName) .setDataStorageConfiguration(new DataStorageConfiguration() .setDefaultDataRegionConfiguration(new DataRegionConfiguration() .setPersistenceEnabled(true))); } @Test public void testDestroyCacheWithNodeFilter() throws Exception { cleanPersistenceDir(); Ignite ignite = startGrids(2); ignite.cluster().state(ClusterState.ACTIVE); UUID nodeId0 = ignite.cluster().localNode().id(); CacheConfiguration<Object, Object> cfg1 = new CacheConfiguration<>("cache1") .setCacheMode(CacheMode.REPLICATED) .setNodeFilter(n -> nodeId0.equals(n.id())); IgniteCache<?, ?> cache1 = ignite.createCache(cfg1); cache1.destroy(); forceCheckpoint(); awaitPartitionMapExchange(); stopAllGrids(); ignite = startGrids(2); // failing here ignite.cluster().state(ClusterState.ACTIVE); } } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) |
Free forum by Nabble | Edit this page |