ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Raymond Wilson (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-8590) Overridden members in descendant classes can cause BinaryMarshaller exceptions
Date Wed, 23 May 2018 20:06:00 GMT
Raymond Wilson created IGNITE-8590:
--------------------------------------

             Summary: Overridden members in descendant classes can cause BinaryMarshaller
exceptions
                 Key: IGNITE-8590
                 URL: https://issues.apache.org/jira/browse/IGNITE-8590
             Project: Ignite
          Issue Type: Bug
          Components: general
    Affects Versions: 2.4
         Environment: Apache Ignite 2.4 using .Net client with .Net Standard artifacts.
            Reporter: Raymond Wilson


If you define a pair of classes, one descended from the other, with an overridden field, the
Ignite binary marshaller throws the exception shown below. 

 

public class A

{

public int Filters;

}

 

public class B : A

{

public int Filters;

}

 

This code compiles (with a warning about an overridden field that does not use the C# 'new'
annotation) and runs, but produces this exception if class B is supplied to an Ignite Compute
function as an argument.

 

2018-05-22 13:40:50,523 [13] ERROR PlanViewTileRenderer. ExecutePipeline raised exception
System.AggregateException: One or more errors occurred. ---> Apache.Ignite.Core.Binary.BinaryObjectException:
Conflicting field IDs [type=SubGridsRequestArgument, field1=Filters, field2=Filters, fieldId=-854547461]

   at Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type type,
Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, Boolean forceTimestamp)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration cfg, BinaryTypeConfiguration
typeCfg, Type type, Int32 typeId, IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper,
ILogger log)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 typeId, String
typeName, Boolean registered, BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.RegisterType(Type type, BinaryFullTypeDescriptor
desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Type type)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Deployment.PeerLoadingExtensions.WriteWithPeerDeployment(BinaryWriter
writer, Object o)

   at Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 obj,
BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 obj,
BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObjectDetached[T](T o)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.WriteJob(IComputeJob job, BinaryWriter
writer)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.<>c__DisplayClass1d`3.<ExecuteClosures0>b__1a(BinaryWriter
writer)

   at Apache.Ignite.Core.Impl.PlatformTargetAdapter.WriteToStream(Action`1 action, IBinaryStream
stream, Marshaller marsh)

   at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutObject(Int32 type, Action`1 writeAction)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.ExecuteClosures0[TArg,TJobRes,TReduceRes](IComputeTask`3
task, IComputeJob job, IEnumerable`1 jobs, Int32 opId, Int32 jobsCount, Action`1 writeAction)

   --- End of inner exception stack trace ---

   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)

   at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout)

   at VSS.TRex.GridFabric.Requests.SubGridRequestsProgressive`2.Execute() in C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\GridFabric\Requests\SubGridRequestsProgressive.cs:line
107

   at VSS.TRex.Pipelines.SubGridPipelineBase`3.Initiate() in C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Pipelines\SubGridPipelineBase.cs:line
241

   at VSS.TRex.Rendering.PlanViewTileRenderer.ExecutePipeline() in C:\Dev\VSS.TRex\src\netstandard\RaptorClassLibrary.netstandard\Rendering\PlanViewTileRenderer.cs:line
262

---> (Inner Exception #0) Apache.Ignite.Core.Binary.BinaryObjectException: Conflicting
field IDs [type=SubGridsRequestArgument, field1=Filters, field2=Filters, fieldId=-854547461]

   at Apache.Ignite.Core.Impl.Binary.BinaryReflectiveSerializerInternal.Register(Type type,
Int32 typeId, IBinaryNameMapper converter, IBinaryIdMapper idMapper, Boolean forceTimestamp)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetSerializer(BinaryConfiguration cfg, BinaryTypeConfiguration
typeCfg, Type type, Int32 typeId, IBinaryNameMapper nameMapper, IBinaryIdMapper idMapper,
ILogger log)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.AddUserType(Type type, Int32 typeId, String
typeName, Boolean registered, BinaryFullTypeDescriptor desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.RegisterType(Type type, BinaryFullTypeDescriptor
desc)

   at Apache.Ignite.Core.Impl.Binary.Marshaller.GetDescriptor(Type type)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Deployment.PeerLoadingExtensions.WriteWithPeerDeployment(BinaryWriter
writer, Object o)

   at Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 obj,
BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Binary.BinarySystemTypeSerializer`1.WriteBinary[T1](T1 obj,
BinaryWriter writer)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.Write[T](T obj)

   at Apache.Ignite.Core.Impl.Binary.BinaryWriter.WriteObjectDetached[T](T o)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.WriteJob(IComputeJob job, BinaryWriter
writer)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.<>c__DisplayClass1d`3.<ExecuteClosures0>b__1a(BinaryWriter
writer)

   at Apache.Ignite.Core.Impl.PlatformTargetAdapter.WriteToStream(Action`1 action, IBinaryStream
stream, Marshaller marsh)

   at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutObject(Int32 type, Action`1 writeAction)

   at Apache.Ignite.Core.Impl.Compute.ComputeImpl.ExecuteClosures0[TArg,TJobRes,TReduceRes](IComputeTask`3
task, IComputeJob job, IEnumerable`1 jobs, Int32 opId, Int32 jobsCount, Action`1 writeAction)<---



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message