[ https://issues.apache.org/jira/browse/IGNITE-9844?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Cherkasov updated IGNITE-9844: -------------------------------------- Ignite Flags: (was: Docs Required) > Replace action in pessimistic transaction makes value unwrap and causes > ClassNotFoundException > ---------------------------------------------------------------------------------------------- > > Key: IGNITE-9844 > URL: https://issues.apache.org/jira/browse/IGNITE-9844 > Project: Ignite > Issue Type: Bug > Components: cache > Affects Versions: 2.6 > Reporter: Mikhail Cherkasov > Priority: Major > Attachments: SimpleTest.java > > > The problem can be reproduced only if you replace the existing value in a > cache inside pessimistic transaction and server node doesn't have the class > for the value which the node already has in the cache. > The reproducer is attached, please make sure that you run server node without > model class in class path. > Stack trace: > {code:java} > [2018-10-10 10:16:31,828][ERROR][pub-#52%grid_0%][GridJobWorker] Failed to > execute job [jobId=07acafe5661-c681a6d3-e7ab-4516-9931-e817e77cac5b, > ses=GridJobSessionImpl [ses=GridTaskSessionImpl > [taskName=class_not_found.SimpleTest$Task, dep=GridDeployment > [ts=1539191791633, depMode=SHARED, clsLdr=GridDeploymentClassLoader > [id=db2aafe5661-f793ea41-94c4-4ae0-8276-8cc771e48fa9, singleNode=false, > nodeLdrMap=HashMap > {c681a6d3-e7ab-4516-9931-e817e77cac5b=96acafe5661-c681a6d3-e7ab-4516-9931-e817e77cac5b}, > p2pTimeout=5000, usrVer=0, depMode=SHARED, quiet=false], > clsLdrId=db2aafe5661-f793ea41-94c4-4ae0-8276-8cc771e48fa9, userVer=0, > loc=false, sampleClsName=class_not_found.SimpleTest$Task, > pendingUndeploy=false, undeployed=false, usage=1]SharedDeployment [rmv=false, > super=], taskClsName=class_not_found.SimpleTest$Task, > sesId=f6acafe5661-c681a6d3-e7ab-4516-9931-e817e77cac5b, > startTime=1539191791465, endTime=9223372036854775807, > taskNodeId=c681a6d3-e7ab-4516-9931-e817e77cac5b, > clsLdr=GridDeploymentClassLoader > [id=db2aafe5661-f793ea41-94c4-4ae0-8276-8cc771e48fa9, singleNode=false, > nodeLdrMap=HashMap > {c681a6d3-e7ab-4516-9931-e817e77cac5b=96acafe5661-c681a6d3-e7ab-4516-9931-e817e77cac5b}, > p2pTimeout=5000, usrVer=0, depMode=SHARED, quiet=false], closed=false, > cpSpi=null, failSpi=null, loadSpi=null, usage=1, fullSup=false, > internal=false, topPred=null, subjId=c681a6d3-e7ab-4516-9931-e817e77cac5b, > mapFut=GridFutureAdapter [ignoreInterrupts=false, state=INIT, res=null, > hash=550280323]IgniteFuture [orig=], execName=null], > jobId=07acafe5661-c681a6d3-e7ab-4516-9931-e817e77cac5b]] > class org.apache.ignite.IgniteException: > class_not_found.SimpleTest$MyDomainObject > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1858) > at > org.apache.ignite.internal.processors.job.GridJobWorker$2.call(GridJobWorker.java:568) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:6797) > at > org.apache.ignite.internal.processors.job.GridJobWorker.execute0(GridJobWorker.java:562) > at > org.apache.ignite.internal.processors.job.GridJobWorker.body(GridJobWorker.java:491) > at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) > at > org.apache.ignite.internal.processors.job.GridJobProcessor.processJobExecuteRequest(GridJobProcessor.java:1191) > at > org.apache.ignite.internal.processors.job.GridJobProcessor$JobExecutionListener.onMessage(GridJobProcessor.java:1923) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1569) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1197) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1093) > 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.binary.BinaryInvalidTypeException: > class_not_found.SimpleTest$MyDomainObject > at > org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:707) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize0(BinaryReaderExImpl.java:1757) > at > org.apache.ignite.internal.binary.BinaryReaderExImpl.deserialize(BinaryReaderExImpl.java:1716) > at > org.apache.ignite.internal.binary.BinaryObjectImpl.deserializeValue(BinaryObjectImpl.java:798) > at > org.apache.ignite.internal.binary.BinaryObjectImpl.value(BinaryObjectImpl.java:143) > at > org.apache.ignite.internal.processors.cache.CacheObjectUtils.unwrapBinary(CacheObjectUtils.java:177) > at > org.apache.ignite.internal.processors.cache.CacheObjectUtils.unwrapBinaryIfNeeded(CacheObjectUtils.java:67) > at > org.apache.ignite.internal.processors.cache.CacheObjectContext.unwrapBinaryIfNeeded(CacheObjectContext.java:125) > at > org.apache.ignite.internal.processors.cache.GridCacheReturn.initValue(GridCacheReturn.java:197) > at > org.apache.ignite.internal.processors.cache.GridCacheReturn.value(GridCacheReturn.java:157) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.postLockWrite(IgniteTxLocalAdapter.java:1294) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.access$200(GridNearTxLocal.java:133) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$2.postLock(GridNearTxLocal.java:655) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$2.postLock(GridNearTxLocal.java:648) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter$PostLockClosure1.apply(IgniteTxLocalAdapter.java:1860) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAsync0(GridNearTxLocal.java:671) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAsync(GridNearTxLocal.java:447) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$22.op(GridCacheAdapter.java:2470) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter$22.op(GridCacheAdapter.java:2468) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:4287) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter.put0(GridCacheAdapter.java:2468) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter.put(GridCacheAdapter.java:2449) > at > org.apache.ignite.internal.processors.cache.GridCacheAdapter.replace(GridCacheAdapter.java:2896) > at > org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.replace(IgniteCacheProxyImpl.java:1278) > at > org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.replace(GatewayProtectedCacheProxy.java:1012) > at class_not_found.SimpleTest$Task.call(SimpleTest.java:140) > at class_not_found.SimpleTest$Task.call(SimpleTest.java:121) > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor$C2.execute(GridClosureProcessor.java:1855) > ... 14 more > Caused by: java.lang.ClassNotFoundException: > class_not_found.SimpleTest$MyDomainObject > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > at java.lang.Class.forName0(Native Method) > at java.lang.Class.forName(Class.java:348) > at org.apache.ignite.internal.util.IgniteUtils.forName(IgniteUtils.java:8741) > at > org.apache.ignite.internal.MarshallerContextImpl.getClass(MarshallerContextImpl.java:349) > at > org.apache.ignite.internal.binary.BinaryContext.descriptorForTypeId(BinaryContext.java:698) > ... 41 more{code} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)