Hello Raymond!

This is unusual. Do you have a minimal reproducer by chance? Care to share
it on e.g. github?

Regards,

-- 
Ilya Kasnacheev

2018-05-22 4:50 GMT+03:00 Raymond Wilson <[email protected]>:

> Hi Ilya,
>
>
>
> I found the folder and removed it. The issue still persist in a different
> context, with the exception below being thrown. This suggests
> PeerClassLoading is enabled, though I have not configured it, and its
> default value is Disabled.
>
>
>
> 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)<---
>
> Thanks,
>
> Raymond.
>
>
>
> *From:* Ilya Kasnacheev [mailto:[email protected]]
> *Sent:* Thursday, May 17, 2018 12:51 AM
>
> *To:* [email protected]
> *Subject:* Re: Binary type has different fields error
>
>
>
> Hello!
>
>
>
> Yes, they are stored under work/marshaller. Should empty this dir before
> restarting node.
>
>
>
> Regards,
>
>
> --
>
> Ilya Kasnacheev
>
>
>
> 2018-05-16 10:22 GMT+03:00 Raymond Wilson <[email protected]>:
>
> Thanks Pavel.
>
>
>
> I guess I’m confused that the type in question is not persisted, it is
> ephemeral. Is Ignite persisting knowledge about these types behind the
> scenes?
>
>
>
> Raymond.
>
>
>
> *From:* Pavel Tupitsyn [mailto:[email protected]]
> *Sent:* Wednesday, May 16, 2018 7:02 PM
> *To:* [email protected]
> *Subject:* Re: Binary type has different fields error
>
>
>
> In general, Ignite is tolerant to changes within your types, adding
> fields, removing them.
>
> But field type change is a breaking change.
>
>
>
> You have to use a new field name.
>
>
>
> Other Ignite experts may give advice on how to update schema, I'm a bit
> out of the loop on this.
>
>
>
> Thanks,
>
> Pavel
>
>
>
> On Wed, May 16, 2018 at 7:06 AM, Raymond Wilson <
> [email protected]> wrote:
>
> I just changed a field in a class from a long to a Guid.
>
>
>
> The class in question is marked [Serializable] and is passed to Ignite
> compute functions as a part of an argument to the compute function and is
> not saved to the persistent store.
>
>
>
> When I run the modified code against an Ignite grid with a persistent data
> store I get the following error. Is this intentional? How should type
> evolution ephemeral constructs handed to compute functions in Ignite be
> handled?
>
>
>
>
>
> Exception: System.AggregateException: One or more errors occurred. --->
> Apache.Ignite.Core.Binary.BinaryObjectException: Binary type has
> different field types [typeName=VSS.TRex.Filters.CellPassAttributeFilter,
> fieldName=ElevationRangeDesignID, fieldTypeName1=long,
> fieldTypeName2=UUID] ---> Apache.Ignite.Core.Common.JavaException: class
> org.apache.ignite.binary.BinaryObjectException: Binary type has different
> field types [typeName=VSS.TRex.Filters.CellPassAttributeFilter, 
> fieldName=ElevationRangeDesignID,
> fieldTypeName1=long, fieldTypeName2=UUID]
>
>                 at org.apache.ignite.internal.binary.BinaryUtils.
> mergeMetadata(BinaryUtils.java:1033)
>
>                 at org.apache.ignite.internal.processors.cache.binary.
> CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl
> .java:444)
>
>                 at org.apache.ignite.internal.processors.cache.binary.
> CacheObjectBinaryProcessorImpl$2.addMeta(CacheObjectBinaryProcessorImpl
> .java:186)
>
>                 at org.apache.ignite.internal.binary.BinaryContext.
> updateMetadata(BinaryContext.java:1303)
>
>                 at org.apache.ignite.internal.processors.platform.
> PlatformContextImpl.processMetadata(PlatformContextImpl.java:336)
>
>                 at org.apache.ignite.internal.processors.platform.binary.
> PlatformBinaryProcessor.processInStreamOutLong(
> PlatformBinaryProcessor.java:70)
>
>                 at org.apache.ignite.internal.processors.platform.
> PlatformAbstractTarget.processInStreamOutLong(PlatformAbstractTarget.java:
> 87)
>
>                 at org.apache.ignite.internal.processors.platform.
> PlatformTargetProxyImpl.inStreamOutLong(PlatformTargetProxyImpl.java:67)
>
>
>
>
>
>    at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.ExceptionCheck()
>
>    at Apache.Ignite.Core.Impl.Unmanaged.Jni.Env.CallLongMethod(GlobalRef
> obj, IntPtr methodId, Int64* argsPtr)
>
>    at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils.
> TargetInStreamOutLong(GlobalRef target, Int32 opType, Int64 memPtr)
>
>    at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong(Int32
> type, Action`1 writeAction)
>
>    --- End of inner exception stack trace ---
>
> Etc…..
>
>
>
> Thanks,
>
> Raymond.
>
>
>
>
>

Reply via email to