Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-11677

LOCAL cache on client node can't be created if persistence enabled

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 2.7
    • None
    • cache
    • None
    • Docs Required

    Description

      Reproducer:

      /** */
      public class LocalCacheWithPersistenceEnabledTest extends GridCommonAbstractTest {
          /** */
          private boolean client = false;
      
          /** {@inheritDoc} */
          @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception {
              IgniteConfiguration cfg = super.getConfiguration(igniteInstanceName);
      
              cfg.setClientMode(client);
      
              cfg.setDataStorageConfiguration(new DataStorageConfiguration()
                  .setDataRegionConfigurations(
                      new DataRegionConfiguration()
                          .setName("data-region")
                          .setPersistenceEnabled(true)));
      
              return cfg;
          }
      
          /** @throws Exception If failed. */
          @Test
          public void testLocalCacheOnClientNodeWithLazyAllocation() throws Exception {
              client = false;
      
              IgniteEx srv = startGrid(0);
      
              srv.cluster().active(true);
      
              awaitPartitionMapExchange();
      
              client = true;
      
              IgniteEx clnt = startGrid(1);
      
              IgniteCache<Integer, String> cache =
                  clnt.createCache(new CacheConfiguration<Integer, String>("my-cache")
                      .setCacheMode(CacheMode.LOCAL)
                      .setDataRegionName("data-region"));
      
              cache.put(1, "test");
      
              assertEquals(cache.get(1), "test");
          }
      
          @Before
          public void before() throws Exception {
              cleanPersistenceDir();
          }
      }
      

      Stack trace:

      [2019-04-08 17:01:56,936][ERROR][exchange-worker-#95%pagemem.LocalCacheWithPersistenceEnabledTest1%][IgniteTestResources] Critical system error detected. Will be handled accordingly to configured handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class o.a.i.IgniteCheckedException: Failed to initialize exchange locally [locNodeId=dd6ce0eb-e780-4c79-a000-90cabee00001]]]
      class org.apache.ignite.IgniteCheckedException: Failed to initialize exchange locally [locNodeId=dd6ce0eb-e780-4c79-a000-90cabee00001]
      	at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:1271)
      	at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:783)
      	at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2958)
      	at org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2807)
      	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.ClassCastException: org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl cannot be cast to org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.getOrAllocateCacheMetas(GridCacheOffheapManager.java:861)
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager.initDataStructures(GridCacheOffheapManager.java:128)
      	at org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.start(IgniteCacheOffheapManagerImpl.java:189)
      	at org.apache.ignite.internal.processors.cache.CacheGroupContext.start(CacheGroupContext.java:1040)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.startCacheGroup(GridCacheProcessor.java:2815)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.getOrCreateCacheGroupContext(GridCacheProcessor.java:2536)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheContext(GridCacheProcessor.java:2366)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareCacheStart(GridCacheProcessor.java:2306)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCaches$55a0e703$1(GridCacheProcessor.java:2177)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.lambda$prepareStartCachesIfPossible$6(GridCacheProcessor.java:2147)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCaches(GridCacheProcessor.java:2174)
      	at org.apache.ignite.internal.processors.cache.GridCacheProcessor.prepareStartCachesIfPossible(GridCacheProcessor.java:2145)
      	at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.processCacheStartRequests(CacheAffinitySharedManager.java:951)
      	at org.apache.ignite.internal.processors.cache.CacheAffinitySharedManager.onCacheChangeRequest(CacheAffinitySharedManager.java:837)
      	at org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onCacheChangeRequest(GridDhtPartitionsExchangeFuture.java:1260)
      	... 5 more
      [2019-04-08 17:01:56,936][ERROR][exchange-worker-#95%pagemem.LocalCacheWithPersistenceEnabledTest1%][IgniteTestResources] Critical system error detected. Will be handled accordingly to configured handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=SYSTEM_WORKER_TERMINATION, err=class o.a.i.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=pagemem.LocalCacheWithPersistenceEnabledTest1, finished=true, heartbeatTs=1554732116926]]]
      class org.apache.ignite.IgniteException: GridWorker [name=partition-exchanger, igniteInstanceName=pagemem.LocalCacheWithPersistenceEnabledTest1, finished=true, heartbeatTs=1554732116926]
      	at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1783)
      	at org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance$2.apply(IgnitionEx.java:1778)
      	at org.apache.ignite.internal.worker.WorkersRegistry.onStopped(WorkersRegistry.java:169)
      	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:153)
      	at java.lang.Thread.run(Thread.java:748)
      

      Attachments

        Issue Links

          Activity

            People

              sudhan499 Madhusudhan Reddy Vennapusa
              nizhikov Nikolay Izhikov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: