[
https://issues.apache.org/jira/browse/IGNITE-11677?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nikolay Izhikov updated IGNITE-11677:
-------------------------------------
Description:
Reproducer:
{code:java}
/** */
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();
}
}
{code}
Stack trace:
{noformat}
[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)
{noformat}
was:
Reproducer:
{code:java}
/** */
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();
}
}
{code}
> LOCAL cache on client node can't be created if persistence enabled
> ------------------------------------------------------------------
>
> Key: IGNITE-11677
> URL: https://issues.apache.org/jira/browse/IGNITE-11677
> Project: Ignite
> Issue Type: Task
> Components: cache
> Affects Versions: 2.7
> Reporter: Nikolay Izhikov
> Priority: Major
>
> Reproducer:
> {code:java}
> /** */
> 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();
> }
> }
> {code}
> Stack trace:
> {noformat}
> [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)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)