ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ilya Kasnacheev (Jira)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-13103) Investigate marshalling errors when changing fields of lambda's capturingClass
Date Mon, 01 Jun 2020 15:24:00 GMT
Ilya Kasnacheev created IGNITE-13103:
----------------------------------------

             Summary: 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


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)

Mime
View raw message