[ 
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)

Reply via email to