[ https://issues.apache.org/jira/browse/IGNITE-13103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17123791#comment-17123791 ]
Ignite TC Bot commented on IGNITE-13103: ---------------------------------------- {panel:title=Branch: [pull/7880/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *--> Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=5355031&buildTypeId=IgniteTests24Java8_RunAll] > Investigate marshalling errors when changing fields of lambda's capturingClass > ------------------------------------------------------------------------------ > > Key: IGNITE-13103 > URL: https://issues.apache.org/jira/browse/IGNITE-13103 > Project: Ignite > Issue Type: Bug > Components: binary, compute > Affects Versions: 2.8.1 > Reporter: Ilya Kasnacheev > Assignee: Ilya Kasnacheev > Priority: Major > Attachments: deployer.zip > > Time Spent: 10m > Remaining Estimate: 0h > > Trying to execute static lambda whose outer type's fields changed leads to > the following error: > {code} > Exception in thread "main" class org.apache.ignite.IgniteException: Remote > job threw user exception (override or implement ComputeTask.result(..) method > if you would like to have automatic failover for this exception): Failed to > serialize object > [typeName=org.apache.ignite.internal.processors.closure.GridClosureProcessor$C4] > at > org.apache.ignite.compute.ComputeTaskAdapter.result(ComputeTaskAdapter.java:102) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1062) > at > org.apache.ignite.internal.processors.task.GridTaskWorker$5.apply(GridTaskWorker.java:1055) > at > org.apache.ignite.internal.util.IgniteUtils.wrapThreadLoader(IgniteUtils.java:7037) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.result(GridTaskWorker.java:1055) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:862) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.processDelayedResponses(GridTaskWorker.java:711) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:542) > at > org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor.startTask(GridTaskProcessor.java:829) > at > org.apache.ignite.internal.processors.task.GridTaskProcessor.execute(GridTaskProcessor.java:497) > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor.runAsync(GridClosureProcessor.java:244) > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor.runAsync(GridClosureProcessor.java:216) > at > org.apache.ignite.internal.IgniteComputeImpl.runAsync0(IgniteComputeImpl.java:702) > at > org.apache.ignite.internal.IgniteComputeImpl.run(IgniteComputeImpl.java:678) > at > com.gridgain.deployer.c.ComputeCallerStarter.start(ComputeCallerStarter.java:19) > at > com.gridgain.deployer.c.ComputeCallerStarter.main(ComputeCallerStarter.java:13) > Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to > serialize object > [typeName=org.apache.ignite.internal.processors.closure.GridClosureProcessor$C4] > at > org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:853) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:232) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:165) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:152) > at > org.apache.ignite.internal.binary.GridBinaryMarshaller.marshal(GridBinaryMarshaller.java:251) > at > org.apache.ignite.internal.binary.BinaryMarshaller.marshal0(BinaryMarshaller.java:84) > at > org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.marshal(AbstractNodeNameAwareMarshaller.java:57) > at > org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:10386) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.sendRequest(GridTaskWorker.java:1397) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.processMappedJobs(GridTaskWorker.java:664) > at > org.apache.ignite.internal.processors.task.GridTaskWorker.body(GridTaskWorker.java:536) > ... 9 more > Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to > serialize object [typeName=java.lang.invoke.SerializedLambda] > at > org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:853) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:232) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:165) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:227) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:165) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:152) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:524) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.writeObject(BinaryWriterExImpl.java:1503) > at > org.apache.ignite.internal.processors.closure.GridClosureProcessor$C4.writeBinary(GridClosureProcessor.java:1955) > at > org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:767) > ... 19 more > Caused by: class org.apache.ignite.binary.BinaryObjectException: Failed to > write field [name=capturingClass] > at > org.apache.ignite.internal.binary.BinaryFieldAccessor.write(BinaryFieldAccessor.java:164) > at > org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:822) > ... 28 more > Caused by: class org.apache.ignite.binary.BinaryObjectException: Type > 'com.gridgain.deployer.c.ComputeCallerStarter' with typeId -2020111498 has a > different/incorrect type for field 'c'. Expected 'int' but 'String' was > provided. Field type's modification is unsupported, clean > {root_path}/marshaller and {root_path}/binary_meta directories if the type > change is required. > at > org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata(BinaryUtils.java:1045) > at > org.apache.ignite.internal.processors.cache.binary.BinaryMetadataTransport.requestMetadataUpdate(BinaryMetadataTransport.java:182) > at > org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl.java:548) > at > org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$1.addMeta(CacheObjectBinaryProcessorImpl.java:235) > at > org.apache.ignite.internal.binary.BinaryContext.registerUserClassDescriptor(BinaryContext.java:837) > at > org.apache.ignite.internal.binary.BinaryContext.registerDescriptor(BinaryContext.java:796) > at > org.apache.ignite.internal.binary.BinaryContext.registerClass(BinaryContext.java:654) > at > org.apache.ignite.internal.binary.BinaryContext.registerClass(BinaryContext.java:629) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteClass(BinaryWriterExImpl.java:914) > at > org.apache.ignite.internal.binary.BinaryWriterExImpl.writeClassField(BinaryWriterExImpl.java:1004) > at > org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.write0(BinaryFieldAccessor.java:692) > at > org.apache.ignite.internal.binary.BinaryFieldAccessor.write(BinaryFieldAccessor.java:157) > ... 29 more > {code} > This is in spite to the fact that instance of outer type never sent over via > network, it can be peer loaded with user versioning and deployment types as > any other compute type. -- This message was sent by Atlassian Jira (v8.3.4#803005)