You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "kcheng.mvp" <kc...@gmail.com> on 2018/09/23 18:06:55 UTC
java.lang.ClassCastException:
org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl cannot be
cast to
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
I ran into this error with below configuration(IgniteSpringBean)
I set * defaultDataRegionConfiguration* as * <property
name="persistenceEnabled" value="false"/>* for unit test. If I set this to
true then everything goes well.
<property name="dataStorageConfiguration">
<bean
class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="storagePath"
value="${ignite.storage.storagePath}"/>
<property name="walPath" value="${ignite.storage.walPath}"/>
<property name="walArchivePath"
value="${ignite.storage.walArchivePath}"/>
<property name="dataRegionConfigurations">
<list>
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="r20g"/>
<property name="initialSize"
value='#{${ignite.storage.dataRegion.region_uat.initialSize}}'/>
<property name="maxSize"
value='#{${ignite.storage.dataRegion.region_uat.maxSize}}'/>
* <property name="persistenceEnabled"
value="true"/>*
</bean>
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="r5g"/>
<property name="initialSize"
value='#{${ignite.storage.dataRegion.region_sc.initialSize}}'/>
<property name="maxSize"
value='#{${ignite.storage.dataRegion.region_sc.maxSize}}'/>
* <property name="persistenceEnabled"
value="true"/>*
</bean>
</list>
</property>
<property name="defaultDataRegionConfiguration">
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="maxSize" value="#{40L * 1024 *
1024}"/>
* <property name="persistenceEnabled"
value="false"/>*
</bean>
</property>
</bean>
</property>
here is the full error stack
Caused by: class org.apache.ignite.IgniteException: Failed to activate
cluster
at
org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:990)
at
org.apache.ignite.internal.cluster.IgniteClusterImpl.active(IgniteClusterImpl.java:315)
at org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3399)
at org.apache.ignite.IgniteSpringBean.active(IgniteSpringBean.java:615)
at
com.nfhd.data.Application.lambda$commandLineRunner$0(Application.java:90)
at
org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:797)
... 30 more
Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
activate cluster
Suppressed: 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.GridCacheDatabaseSharedManager.getPageMemoryForCacheGroup(GridCacheDatabaseSharedManager.java:2154)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:2007)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:1929)
at
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readCheckpointAndRestoreMemory(GridCacheDatabaseSharedManager.java:755)
at
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPartitionsExchangeFuture.java:894)
at
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:641)
at
org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2419)
at
org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2299)
at
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at java.lang.Thread.run(Thread.java:748)
--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Re: java.lang.ClassCastException: org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl
cannot be cast to org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!
What is the Ignite version used there? I remember seeing errors like this
one, but way back.
Regards,
--
Ilya Kasnacheev
вс, 23 сент. 2018 г. в 21:07, kcheng.mvp <kc...@gmail.com>:
> I ran into this error with below configuration(IgniteSpringBean)
>
> I set * defaultDataRegionConfiguration* as * <property
> name="persistenceEnabled" value="false"/>* for unit test. If I set this to
> true then everything goes well.
>
>
> <property name="dataStorageConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataStorageConfiguration">
>
> <property name="storagePath"
> value="${ignite.storage.storagePath}"/>
> <property name="walPath"
> value="${ignite.storage.walPath}"/>
> <property name="walArchivePath"
> value="${ignite.storage.walArchivePath}"/>
>
> <property name="dataRegionConfigurations">
> <list>
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="r20g"/>
> <property name="initialSize"
> value='#{${ignite.storage.dataRegion.region_uat.initialSize}}'/>
> <property name="maxSize"
> value='#{${ignite.storage.dataRegion.region_uat.maxSize}}'/>
> * <property name="persistenceEnabled"
> value="true"/>*
> </bean>
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="r5g"/>
> <property name="initialSize"
> value='#{${ignite.storage.dataRegion.region_sc.initialSize}}'/>
> <property name="maxSize"
> value='#{${ignite.storage.dataRegion.region_sc.maxSize}}'/>
> * <property name="persistenceEnabled"
> value="true"/>*
> </bean>
> </list>
> </property>
> <property name="defaultDataRegionConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="Default_Region"/>
>
> <property name="maxSize" value="#{40L * 1024 *
> 1024}"/>
> * <property name="persistenceEnabled"
> value="false"/>*
> </bean>
> </property>
> </bean>
> </property>
>
>
>
>
> here is the full error stack
>
>
> Caused by: class org.apache.ignite.IgniteException: Failed to activate
> cluster
> at
>
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:990)
> at
>
> org.apache.ignite.internal.cluster.IgniteClusterImpl.active(IgniteClusterImpl.java:315)
> at
> org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3399)
> at
> org.apache.ignite.IgniteSpringBean.active(IgniteSpringBean.java:615)
> at
> com.nfhd.data.Application.lambda$commandLineRunner$0(Application.java:90)
> at
>
> org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:797)
> ... 30 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
> activate cluster
> Suppressed: 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.GridCacheDatabaseSharedManager.getPageMemoryForCacheGroup(GridCacheDatabaseSharedManager.java:2154)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:2007)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:1929)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readCheckpointAndRestoreMemory(GridCacheDatabaseSharedManager.java:755)
> at
>
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPartitionsExchangeFuture.java:894)
> at
>
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:641)
> at
>
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2419)
> at
>
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2299)
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> at java.lang.Thread.run(Thread.java:748)
>
>
>
>
> --
> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
>
Re: java.lang.ClassCastException:
org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl cannot be
cast to
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
Posted by "kcheng.mvp" <kc...@gmail.com>.
I am using springboot + ignite. it's very simple.
you can reproduce this issue with below code
Bean definition
-----------------------------------------
@Bean
public CommandLineRunner commandLineRunner(@Autowired ApplicationContext
context) {
return args -> {
logger.info("Start ignite database ......");
logger.info("Region name is: {}", regionName);
IgniteSpringBean igniteSpringBean =
context.getBean("igniteSpringBean", IgniteSpringBean.class);
igniteSpringBean.active(true);
logger.info("Init ignite database ......");
CacheConfiguration cacheCfg = cacheCfg();
logger.info("Cache name is {}", cacheCfg.getName());
cacheCfg.setIndexedTypes(String.class, Article.class,
ArticleAffKey.class, Comment.class, CommentAffKey.class, Reply.class);
igniteSpringBean.getOrCreateCache(cacheCfg);
};
}
@Bean
public CacheConfiguration cacheCfg() {
CacheConfiguration cacheCfg = new CacheConfiguration<>(IgDef.DOCS);
cacheCfg.setBackups(1);
cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.PRIMARY_SYNC);
if
(!Arrays.asList(environment.getActiveProfiles()).contains("test")) {
cacheCfg.setDataRegionName(regionName);
}
return cacheCfg;
}
------------------------------
ignite.xml
---------------------
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<bean id="igniteSpringBean" class="org.apache.ignite.IgniteSpringBean">
<property name="configuration" ref="igcfg"/>
</bean>
<bean id="igcfg"
class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="clientMode" value="${ignite.clientMode}"/>
<property name="discoverySpi">
<bean
class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
<property name="ipFinder">
<bean
class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
<property name="addresses"
value="#{'${ignite.TcpDiscoverySpi.addresses}'.split(',')}"/>
</bean>
</property>
</bean>
</property>
<property name="dataStorageConfiguration">
<bean
class="org.apache.ignite.configuration.DataStorageConfiguration">
<property name="storagePath"
value="${ignite.storage.storagePath}"/>
<property name="walPath" value="${ignite.storage.walPath}"/>
<property name="walArchivePath"
value="${ignite.storage.walArchivePath}"/>
<property name="dataRegionConfigurations">
<list>
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="r20g"/>
<property name="initialSize"
value='#{${ignite.storage.dataRegion.region_uat.initialSize}}'/>
<property name="maxSize"
value='#{${ignite.storage.dataRegion.region_uat.maxSize}}'/>
<property name="persistenceEnabled"
value="true"/>
</bean>
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="r5g"/>
<property name="initialSize"
value='#{${ignite.storage.dataRegion.region_sc.initialSize}}'/>
<property name="maxSize"
value='#{${ignite.storage.dataRegion.region_sc.maxSize}}'/>
<property name="persistenceEnabled"
value="true"/>
</bean>
</list>
</property>
<property name="defaultDataRegionConfiguration">
<bean
class="org.apache.ignite.configuration.DataRegionConfiguration">
<property name="name" value="Default_Region"/>
<property name="maxSize" value="#{40L * 1024 *
1024}"/>
<property name="persistenceEnabled" value="true"/>
</bean>
</property>
</bean>
</property>
</bean>
</beans>
--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Re: java.lang.ClassCastException:
org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl cannot be
cast to
org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
Posted by "kcheng.mvp" <kc...@gmail.com>.
<http://apache-ignite-developers.2346864.n4.nabble.com/file/t85/screenshot.png>
please see the screenshot, I have three data region definition.
the default region persistence setting is false, the other two are true.
--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
Re: java.lang.ClassCastException: org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl
cannot be cast to org.apache.ignite.internal.processors.cache.persistence.pagemem.PageMemoryEx
Posted by Maxim Muzafarov <ma...@gmail.com>.
Hello,
Can you provide more information about your test steps and share the whole
your unit test with us?
For instance, in your stack trace, the `GridCacheDatabaseSharedManager`
used. So, node expects
persistence to be enabled and it's not clear for me why. Please, share
details.
On Sun, 23 Sep 2018 at 21:07 kcheng.mvp <kc...@gmail.com> wrote:
> I ran into this error with below configuration(IgniteSpringBean)
>
> I set * defaultDataRegionConfiguration* as * <property
> name="persistenceEnabled" value="false"/>* for unit test. If I set this to
> true then everything goes well.
>
>
> <property name="dataStorageConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataStorageConfiguration">
>
> <property name="storagePath"
> value="${ignite.storage.storagePath}"/>
> <property name="walPath"
> value="${ignite.storage.walPath}"/>
> <property name="walArchivePath"
> value="${ignite.storage.walArchivePath}"/>
>
> <property name="dataRegionConfigurations">
> <list>
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="r20g"/>
> <property name="initialSize"
> value='#{${ignite.storage.dataRegion.region_uat.initialSize}}'/>
> <property name="maxSize"
> value='#{${ignite.storage.dataRegion.region_uat.maxSize}}'/>
> * <property name="persistenceEnabled"
> value="true"/>*
> </bean>
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="r5g"/>
> <property name="initialSize"
> value='#{${ignite.storage.dataRegion.region_sc.initialSize}}'/>
> <property name="maxSize"
> value='#{${ignite.storage.dataRegion.region_sc.maxSize}}'/>
> * <property name="persistenceEnabled"
> value="true"/>*
> </bean>
> </list>
> </property>
> <property name="defaultDataRegionConfiguration">
> <bean
> class="org.apache.ignite.configuration.DataRegionConfiguration">
> <property name="name" value="Default_Region"/>
>
> <property name="maxSize" value="#{40L * 1024 *
> 1024}"/>
> * <property name="persistenceEnabled"
> value="false"/>*
> </bean>
> </property>
> </bean>
> </property>
>
>
>
>
> here is the full error stack
>
>
> Caused by: class org.apache.ignite.IgniteException: Failed to activate
> cluster
> at
>
> org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:990)
> at
>
> org.apache.ignite.internal.cluster.IgniteClusterImpl.active(IgniteClusterImpl.java:315)
> at
> org.apache.ignite.internal.IgniteKernal.active(IgniteKernal.java:3399)
> at
> org.apache.ignite.IgniteSpringBean.active(IgniteSpringBean.java:615)
> at
> com.nfhd.data.Application.lambda$commandLineRunner$0(Application.java:90)
> at
>
> org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:797)
> ... 30 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to
> activate cluster
> Suppressed: 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.GridCacheDatabaseSharedManager.getPageMemoryForCacheGroup(GridCacheDatabaseSharedManager.java:2154)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:2007)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.restoreMemory(GridCacheDatabaseSharedManager.java:1929)
> at
>
> org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.readCheckpointAndRestoreMemory(GridCacheDatabaseSharedManager.java:755)
> at
>
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.onClusterStateChangeRequest(GridDhtPartitionsExchangeFuture.java:894)
> at
>
> org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionsExchangeFuture.init(GridDhtPartitionsExchangeFuture.java:641)
> at
>
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body0(GridCachePartitionExchangeManager.java:2419)
> at
>
> org.apache.ignite.internal.processors.cache.GridCachePartitionExchangeManager$ExchangeWorker.body(GridCachePartitionExchangeManager.java:2299)
> at
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
> at java.lang.Thread.run(Thread.java:748)
>
>
>
>
> --
> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
>
--
--
Maxim Muzafarov