[
https://issues.apache.org/jira/browse/IGNITE-16649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ivan Daschinsky updated IGNITE-16649:
-------------------------------------
Description:
When putting IBinarilizable instance with different field set, schema is not
sent to cluster, leading to failure if another node tries to get value from
cache.
{code}
Apache.Ignite.Core.Binary.BinaryObjectException : Cannot find schema for object
with compact footer [typeId=-1422440667, schemaId=-935090685]
at
Apache.Ignite.Core.Impl.Binary.BinaryObjectSchemaSerializer.GetFieldIds(BinaryObjectHeader
hdr, IIgniteInternal ignite) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryObjectSchemaSerializer.cs:line
307
at
Apache.Ignite.Core.Impl.Binary.BinaryObjectSchemaSerializer.GetFieldIds(BinaryObjectHeader
hdr, IIgniteInternal ignite, IBinaryStream stream, Int32 objectPos) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryObjectSchemaSerializer.cs:line
262
at
Apache.Ignite.Core.Impl.Binary.BinaryReader.SetCurSchema(IBinaryTypeDescriptor
desc) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
803
at Apache.Ignite.Core.Impl.Binary.BinaryReader.ReadFullObject[T](Int32 pos,
Type typeOverride) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
751
at Apache.Ignite.Core.Impl.Binary.BinaryReader.TryDeserialize[T](T& res,
Type typeOverride) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
577
at Apache.Ignite.Core.Impl.Binary.BinaryReader.Deserialize[T](Type
typeOverride) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
536
at Apache.Ignite.Core.Impl.Binary.BinaryReader.ReadBinaryObject[T](Boolean
doDetach) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
635
at Apache.Ignite.Core.Impl.Binary.BinaryReader.TryDeserialize[T](T& res,
Type typeOverride) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
582
at Apache.Ignite.Core.Impl.Binary.BinaryReader.Deserialize[T](Type
typeOverride) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
536
at Apache.Ignite.Core.Impl.Binary.Marshaller.Unmarshal[T](IBinaryStream
stream, BinaryMode mode, BinaryObjectBuilder builder) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Marshaller.cs:line
295
at Apache.Ignite.Core.Impl.Binary.Marshaller.Unmarshal[T](IBinaryStream
stream, Boolean keepBinary) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Marshaller.cs:line
268
at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.Unmarshal[T](IBinaryStream
stream) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
1750
at
Apache.Ignite.Core.Impl.Cache.CacheImpl`2.<>c__DisplayClass146_0.<DoOutInOpNullable>b__1(IBinaryStream
stream, Int64 res) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
1907
at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong[TR](Int32 type,
Func`2 outAction, Func`3 inAction, Func`2 readErrorAction) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformJniTarget.cs:line
214
at Apache.Ignite.Core.Impl.PlatformTargetAdapter.DoOutInOpX[TR](Int32 type,
Action`1 outAction, Func`3 inAction, Func`2 inErrorAction) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTargetAdapter.cs:line
236
at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.DoOutInOpNullable(CacheOp
cacheOp, TK x) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
1905
at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.TryGet(TK key, TV& value) in
/home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
592
{code}
> .NET: Doesn't sent updated schema when changed fields of IBinarilizable
> -----------------------------------------------------------------------
>
> Key: IGNITE-16649
> URL: https://issues.apache.org/jira/browse/IGNITE-16649
> Project: Ignite
> Issue Type: Bug
> Components: platforms
> Reporter: Ivan Daschinsky
> Assignee: Ivan Daschinsky
> Priority: Major
> Attachments: BinaryChangeSchemaTest.cs
>
>
> When putting IBinarilizable instance with different field set, schema is not
> sent to cluster, leading to failure if another node tries to get value from
> cache.
> {code}
> Apache.Ignite.Core.Binary.BinaryObjectException : Cannot find schema for
> object with compact footer [typeId=-1422440667, schemaId=-935090685]
> at
> Apache.Ignite.Core.Impl.Binary.BinaryObjectSchemaSerializer.GetFieldIds(BinaryObjectHeader
> hdr, IIgniteInternal ignite) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryObjectSchemaSerializer.cs:line
> 307
> at
> Apache.Ignite.Core.Impl.Binary.BinaryObjectSchemaSerializer.GetFieldIds(BinaryObjectHeader
> hdr, IIgniteInternal ignite, IBinaryStream stream, Int32 objectPos) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryObjectSchemaSerializer.cs:line
> 262
> at
> Apache.Ignite.Core.Impl.Binary.BinaryReader.SetCurSchema(IBinaryTypeDescriptor
> desc) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 803
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.ReadFullObject[T](Int32
> pos, Type typeOverride) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 751
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.TryDeserialize[T](T& res,
> Type typeOverride) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 577
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.Deserialize[T](Type
> typeOverride) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 536
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.ReadBinaryObject[T](Boolean
> doDetach) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 635
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.TryDeserialize[T](T& res,
> Type typeOverride) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 582
> at Apache.Ignite.Core.Impl.Binary.BinaryReader.Deserialize[T](Type
> typeOverride) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/BinaryReader.cs:line
> 536
> at Apache.Ignite.Core.Impl.Binary.Marshaller.Unmarshal[T](IBinaryStream
> stream, BinaryMode mode, BinaryObjectBuilder builder) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Marshaller.cs:line
> 295
> at Apache.Ignite.Core.Impl.Binary.Marshaller.Unmarshal[T](IBinaryStream
> stream, Boolean keepBinary) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/Marshaller.cs:line
> 268
> at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.Unmarshal[T](IBinaryStream
> stream) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
> 1750
> at
> Apache.Ignite.Core.Impl.Cache.CacheImpl`2.<>c__DisplayClass146_0.<DoOutInOpNullable>b__1(IBinaryStream
> stream, Int64 res) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
> 1907
> at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong[TR](Int32
> type, Func`2 outAction, Func`3 inAction, Func`2 readErrorAction) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformJniTarget.cs:line
> 214
> at Apache.Ignite.Core.Impl.PlatformTargetAdapter.DoOutInOpX[TR](Int32
> type, Action`1 outAction, Func`3 inAction, Func`2 inErrorAction) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/PlatformTargetAdapter.cs:line
> 236
> at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.DoOutInOpNullable(CacheOp
> cacheOp, TK x) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
> 1905
> at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.TryGet(TK key, TV& value) in
> /home/ivandasch/Job/ignite-pmdk/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Cache/CacheImpl.cs:line
> 592
> {code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)