Mikhail Cherkasov created IGNITE-9844:
----------------------------------------- Summary: 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 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) |
Free forum by Nabble | Edit this page |