Re: Ignite throws "Failed to resolve class name" Exception
Hello! I can see a very similar issue filed: https://issues.apache.org/jira/browse/IGNITE-14856 There are hopes that it gets addresses in 2.11 Regards, -- Ilya Kasnacheev чт, 3 июн. 2021 г. в 14:37, Aleksandr Shapkin : > Hello! > > It seems that you are trying to deploy DTO using peer class loading, > unfortunately, that's not possible. Peer class loading is mostly about task > deployment, see > https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading > > To resolve this you need to have your CacheState deployed on all nodes > before deserialization happens or to work with cache in raw binary format. > https://ignite.apache.org/docs/latest/key-value-api/binary-objects > > > > On 26 May 2021, at 18:27, tsipporah22 wrote: > > > > Hi Ilya, > > > > Sorry I get back to you late. I have key-value classes on the server > node. > > The peer class loading is enabled. I'm not getting this error > consistently > > so it's hard to reproduce. Below is the code snippet that throws the > error: > > > > First I got CacheState object with tableName as the key: > > > > public class CacheState implements Serializable { > >private static final long serialVersionUID = 1L; > > > >@QuerySqlField(index=true) > >private String tableName; > > > >@QuerySqlField > >private long updateVersion; > > > > > >public CacheState() { > >} > > > >public CacheState(String tableName) { > >this.tableName = tableName; > >} > > > >public String getTableName() { > >return tableName; > >} > > > >public void setTableName(String tableName) { > >this.tableName = tableName; > >} > > > >public long getUpdateVersion() { > >return updateVersion; > >} > > > >public void setUpdateVersion(long updateVersion) { > >this.updateVersion = updateVersion; > >} > > > > > > And the error is thrown from this class: > > > > public class WindowOptimizer { > >private final Ignite ignite; > > > >private IgniteCache cacheStates; > > > >public void init() { > >if (cacheStates == null) { > >cacheStates = > > ignite.cache(CacheState.class.getSimpleName().toLowerCase()); > >} > >} > > } > > > >private IgniteFuture> > > updateCacheState(IgniteCompute compute, BaselinePeriod period, > >OffsetDateTime now, WindowOptimizerCfg cfg) { > > > >final IgniteFuture> future = > > compute.broadcastAsync(updater); > >future.listen(f -> { > > > > > >CacheState cacheState = cacheStates.get(tableName);<--- > this > > line throws Exception > > > > > >}) > >} > > > > > > Thanks, > > tsipporah > > > > > > > > > > -- > > Sent from: http://apache-ignite-users.70518.x6.nabble.com/ > >
Re: Ignite throws "Failed to resolve class name" Exception
Hello! It seems that you are trying to deploy DTO using peer class loading, unfortunately, that's not possible. Peer class loading is mostly about task deployment, see https://ignite.apache.org/docs/latest/code-deployment/peer-class-loading To resolve this you need to have your CacheState deployed on all nodes before deserialization happens or to work with cache in raw binary format. https://ignite.apache.org/docs/latest/key-value-api/binary-objects > On 26 May 2021, at 18:27, tsipporah22 wrote: > > Hi Ilya, > > Sorry I get back to you late. I have key-value classes on the server node. > The peer class loading is enabled. I'm not getting this error consistently > so it's hard to reproduce. Below is the code snippet that throws the error: > > First I got CacheState object with tableName as the key: > > public class CacheState implements Serializable { >private static final long serialVersionUID = 1L; > >@QuerySqlField(index=true) >private String tableName; > >@QuerySqlField >private long updateVersion; > > >public CacheState() { >} > >public CacheState(String tableName) { >this.tableName = tableName; >} > >public String getTableName() { >return tableName; >} > >public void setTableName(String tableName) { >this.tableName = tableName; >} > >public long getUpdateVersion() { >return updateVersion; >} > >public void setUpdateVersion(long updateVersion) { >this.updateVersion = updateVersion; >} > > > And the error is thrown from this class: > > public class WindowOptimizer { >private final Ignite ignite; > >private IgniteCache cacheStates; > >public void init() { >if (cacheStates == null) { >cacheStates = > ignite.cache(CacheState.class.getSimpleName().toLowerCase()); >} >} > } > >private IgniteFuture> > updateCacheState(IgniteCompute compute, BaselinePeriod period, >OffsetDateTime now, WindowOptimizerCfg cfg) { > >final IgniteFuture> future = > compute.broadcastAsync(updater); >future.listen(f -> { > > >CacheState cacheState = cacheStates.get(tableName);<--- this > line throws Exception > > >}) >} > > > Thanks, > tsipporah > > > > > -- > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Ignite throws "Failed to resolve class name" Exception
Hi Ilya, Sorry I get back to you late. I have key-value classes on the server node. The peer class loading is enabled. I'm not getting this error consistently so it's hard to reproduce. Below is the code snippet that throws the error: First I got CacheState object with tableName as the key: public class CacheState implements Serializable { private static final long serialVersionUID = 1L; @QuerySqlField(index=true) private String tableName; @QuerySqlField private long updateVersion; public CacheState() { } public CacheState(String tableName) { this.tableName = tableName; } public String getTableName() { return tableName; } public void setTableName(String tableName) { this.tableName = tableName; } public long getUpdateVersion() { return updateVersion; } public void setUpdateVersion(long updateVersion) { this.updateVersion = updateVersion; } And the error is thrown from this class: public class WindowOptimizer { private final Ignite ignite; private IgniteCache cacheStates; public void init() { if (cacheStates == null) { cacheStates = ignite.cache(CacheState.class.getSimpleName().toLowerCase()); } } } private IgniteFuture> updateCacheState(IgniteCompute compute, BaselinePeriod period, OffsetDateTime now, WindowOptimizerCfg cfg) { final IgniteFuture> future = compute.broadcastAsync(updater); future.listen(f -> { CacheState cacheState = cacheStates.get(tableName);<--- this line throws Exception }) } Thanks, tsipporah -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Re: Ignite throws "Failed to resolve class name" Exception
Hello again! I have also noticed that you are running lambdas on the server side. Is peer class loading enabled? Do you have key value/type classes on the server node? Ignite will not peer load key-value classes currently, so you need to explicitly deploy them on the server to be able to reference them in server-running code. Regards, -- Ilya Kasnacheev чт, 13 мая 2021 г. в 15:20, Ilya Kasnacheev : > Hello! > > Can you share a sample of code which causes the issue, as well as cache > configuration? > > Regards, > -- > Ilya Kasnacheev > > > пт, 7 мая 2021 г. в 21:04, tsipporah22 : > >> Hi experts, >> >> I'm running ignite server node in k8s and recently I upgraded ignite to >> 2.10.0. Ignite is started with below command: >> /opt/rta/os/jre/bin/java -XX:+AggressiveOpts >> -Djava.net.preferIPv4Stack=true >> -XX:+UseG1GC -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 >> -DIGNITE_QUIET=false >> >> -DIGNITE_SUCCESS_FILE=/opt/rta/os/ignite/work/ignite_success_f0dac24c-d7aa-48bd-82d6-1492ab47e18f >> -DIGNITE_HOME=/opt/rta/os/ignite >> -DIGNITE_PROG_NAME=/opt/rta/os/ignite/bin/ignite.sh -cp >> >> /opt/rta/os/ignite/libs/*:/opt/rta/os/ignite/libs/ignite-control-utility/*:/opt/rta/os/ignite/libs/ignite-indexing/*:/opt/rta/os/ignite/libs/ignite-kubernetes/*:/opt/rta/os/ignite/libs/ignite-rest-http/*:/opt/rta/os/ignite/libs/ignite-spring/*:/opt/rta/os/ignite/libs/licenses/*:/opt/rta/os/ignite/libs/rta-windows/* >> org.apache.ignite.startup.cmdline.CommandLineStartup >> /opt/rta/os/ignite/config/ignite-config.xml >> >> From time to time I'm getting below exception that complain about "Failed >> to >> resolve class name": >> >> SEVERE: Failed to notify listener: >> >> com.rta.rtanalytics.baseline.common.compute.WindowOptimizer$$Lambda$918/1241362859@cd85226 >> javax.cache.CacheException: class >> org.apache.ignite.IgniteCheckedException: >> Failed to resolve class name [platformId=0, platform=Java, >> typeId=-1052093315] >> at >> >> org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1263) >> at >> >> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083) >> at >> >> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1110) >> at >> >> org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.get(GatewayProtectedCacheProxy.java:676) >> at >> >> com.rta.rtanalytics.baseline.common.compute.WindowOptimizer.lambda$updateCacheState$44eb080f$1(WindowOptimizer.java:177) >> at >> >> org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:214) >> at >> >> org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) >> at >> >> org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) >> at >> >> org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) >> at >> >> org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) >> at >> >> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) >> at >> >> org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) >> at >> >> org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1650) >> at >> >> org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1618) >> at >> >> org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1193) >> at >> >> org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:975) >> at >> >> org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1161) >> at >> >> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:965) >> at >> >> org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:813) >> at >> >> org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:662) >> at >> >> org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:521) >> at >> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) >> at >> >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) >> at java.lang.Thread.run(Thread.java:748) >> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to >> resolve >> class name [platformId=0, platform=Java, typeId=-1052093315] >> at >>
Re: Ignite throws "Failed to resolve class name" Exception
Hello! Can you share a sample of code which causes the issue, as well as cache configuration? Regards, -- Ilya Kasnacheev пт, 7 мая 2021 г. в 21:04, tsipporah22 : > Hi experts, > > I'm running ignite server node in k8s and recently I upgraded ignite to > 2.10.0. Ignite is started with below command: > /opt/rta/os/jre/bin/java -XX:+AggressiveOpts > -Djava.net.preferIPv4Stack=true > -XX:+UseG1GC -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 > -DIGNITE_QUIET=false > > -DIGNITE_SUCCESS_FILE=/opt/rta/os/ignite/work/ignite_success_f0dac24c-d7aa-48bd-82d6-1492ab47e18f > -DIGNITE_HOME=/opt/rta/os/ignite > -DIGNITE_PROG_NAME=/opt/rta/os/ignite/bin/ignite.sh -cp > > /opt/rta/os/ignite/libs/*:/opt/rta/os/ignite/libs/ignite-control-utility/*:/opt/rta/os/ignite/libs/ignite-indexing/*:/opt/rta/os/ignite/libs/ignite-kubernetes/*:/opt/rta/os/ignite/libs/ignite-rest-http/*:/opt/rta/os/ignite/libs/ignite-spring/*:/opt/rta/os/ignite/libs/licenses/*:/opt/rta/os/ignite/libs/rta-windows/* > org.apache.ignite.startup.cmdline.CommandLineStartup > /opt/rta/os/ignite/config/ignite-config.xml > > From time to time I'm getting below exception that complain about "Failed > to > resolve class name": > > SEVERE: Failed to notify listener: > > com.rta.rtanalytics.baseline.common.compute.WindowOptimizer$$Lambda$918/1241362859@cd85226 > javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: > Failed to resolve class name [platformId=0, platform=Java, > typeId=-1052093315] > at > > org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1263) > at > > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083) > at > > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1110) > at > > org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.get(GatewayProtectedCacheProxy.java:676) > at > > com.rta.rtanalytics.baseline.common.compute.WindowOptimizer.lambda$updateCacheState$44eb080f$1(WindowOptimizer.java:177) > at > > org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:214) > at > > org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1650) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1618) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1193) > at > > org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:975) > at > > org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1161) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:965) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:813) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:662) > at > > org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:521) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to > resolve > class name [platformId=0, platform=Java, typeId=-1052093315] > at > org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7587) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:260) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:172) > at > > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141) > at > > org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4893) > at > >
Ignite throws "Failed to resolve class name" Exception
Hi experts, I'm running ignite server node in k8s and recently I upgraded ignite to 2.10.0. Ignite is started with below command: /opt/rta/os/jre/bin/java -XX:+AggressiveOpts -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -DIGNITE_QUIET=false -DIGNITE_SUCCESS_FILE=/opt/rta/os/ignite/work/ignite_success_f0dac24c-d7aa-48bd-82d6-1492ab47e18f -DIGNITE_HOME=/opt/rta/os/ignite -DIGNITE_PROG_NAME=/opt/rta/os/ignite/bin/ignite.sh -cp /opt/rta/os/ignite/libs/*:/opt/rta/os/ignite/libs/ignite-control-utility/*:/opt/rta/os/ignite/libs/ignite-indexing/*:/opt/rta/os/ignite/libs/ignite-kubernetes/*:/opt/rta/os/ignite/libs/ignite-rest-http/*:/opt/rta/os/ignite/libs/ignite-spring/*:/opt/rta/os/ignite/libs/licenses/*:/opt/rta/os/ignite/libs/rta-windows/* org.apache.ignite.startup.cmdline.CommandLineStartup /opt/rta/os/ignite/config/ignite-config.xml >From time to time I'm getting below exception that complain about "Failed to resolve class name": SEVERE: Failed to notify listener: com.rta.rtanalytics.baseline.common.compute.WindowOptimizer$$Lambda$918/1241362859@cd85226 javax.cache.CacheException: class org.apache.ignite.IgniteCheckedException: Failed to resolve class name [platformId=0, platform=Java, typeId=-1052093315] at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1263) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2083) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1110) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.get(GatewayProtectedCacheProxy.java:676) at com.rta.rtanalytics.baseline.common.compute.WindowOptimizer.lambda$updateCacheState$44eb080f$1(WindowOptimizer.java:177) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:214) at org.apache.ignite.internal.util.future.IgniteFutureImpl$InternalFutureListener.apply(IgniteFutureImpl.java:179) at org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) at org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) at org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) at org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1650) at org.apache.ignite.internal.processors.task.GridTaskWorker.finishTask(GridTaskWorker.java:1618) at org.apache.ignite.internal.processors.task.GridTaskWorker.reduce(GridTaskWorker.java:1193) at org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:975) at org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:1161) at org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:965) at org.apache.ignite.internal.processors.job.GridJobWorker.finishJob(GridJobWorker.java:813) at org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:662) at org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:521) at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: class org.apache.ignite.IgniteCheckedException: Failed to resolve class name [platformId=0, platform=Java, typeId=-1052093315] at org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7587) at org.apache.ignite.internal.util.future.GridFutureAdapter.resolve(GridFutureAdapter.java:260) at org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:172) at org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:141) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:4893) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.repairableGet(GridCacheAdapter.java:4852) at org.apache.ignite.internal.processors.cache.GridCacheAdapter.get(GridCacheAdapter.java:1470) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.get(IgniteCacheProxyImpl.java:1107) ... 22 more Caused by: class org.apache.ignite.binary.BinaryInvalidTypeException: Failed to resolve class name