You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Denis Magda <dm...@apache.org> on 2018/11/03 02:52:04 UTC

Re: destroy cache holding residual metadata in memory (2.7)

+ dev list

Vladimir, Igniters,

Don't we wipe out the metadata on a cache destroy? Is it an issue or done
on purpose?

--
Denis


On Wed, Oct 31, 2018 at 11:28 AM wt <wa...@gmail.com> wrote:

> i am testing code and part of my tests is adding\removing tables. In one of
> the tests i add a table then destroy it and add it again but with an
> additional column. When i try load the table i am getting a data type
> mismatch and it is referring to the previous version of the table
>
> in the work directory there is a folder for the original table but it is
> empty. here is the error i get when trying to flush the loader. If i stop
> and start ignite then adding the table with the new column data type works
> so there is some residual metadata that isn't being cleaned up by
> destroycache of the client.
>
> Apache.Ignite.Core.Binary.BinaryObjectException
>   HResult=0x80131500
>   Message=Binary type has different field types
> [typeName=Tables.csvCurrencyRates, fieldName=id, fieldTypeName1=UUID,
> fieldTypeName2=String]
>   Source=Apache.Ignite.Core
>   StackTrace:
>    at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong(Int32 type,
> Action`1 writeAction)
>    at Apache.Ignite.Core.Impl.PlatformTargetAdapter.DoOutOp(Int32 type,
> Action`1 action)
>    at Apache.Ignite.Core.Impl.Binary.Marshaller.FinishMarshal(BinaryWriter
> writer)
>    at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutLong(Int32 type,
> Action`1 writeAction)
>    at Apache.Ignite.Core.Impl.PlatformTargetAdapter.DoOutOp(Int32 type,
> Action`1 action)
>    at Apache.Ignite.Core.Impl.Datastream.DataStreamerImpl`2.Update(Action`1
> action)
>    at
>
> Apache.Ignite.Core.Impl.Datastream.DataStreamerBatch`2.Send(DataStreamerImpl`2
> ldr, Int32 plc)
>    at
>
> Apache.Ignite.Core.Impl.Datastream.DataStreamerImpl`2.Flush0(DataStreamerBatch`2
> curBatch, Boolean wait, Int32 plc)
>    at Apache.Ignite.Core.Impl.Datastream.DataStreamerImpl`2.Flush()
>    at ClusterTool.classes.DbProviderCSV.StreamCsvData(List`1 headers,
> String
> tablename, ICsvLine[] lines, Object _class, Type type, IIgnite
> igniteclient,
> Boolean hashashid, CsvNewId csvid) in
> C:\temp\IgniteTool\ClusterTool\classes\DbProviderCSV.cs:line 236
>    at ClusterTool.classes.DbProviderCSV.LoadFromCsvFiles(String tablename)
> in C:\temp\IgniteTool\ClusterTool\classes\DbProviderCSV.cs:line 104
>    at ClusterTool.DataLoaderForm.<>c__DisplayClass7_0.<Startcsv>b__0() in
> C:\temp\IgniteTool\ClusterTool\DataLoaderForm.cs:line 94
>    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
> executionContext, ContextCallback callback, Object state, Boolean
> preserveSyncCtx)
>    at System.Threading.ExecutionContext.Run(ExecutionContext
> executionContext, ContextCallback callback, Object state, Boolean
> preserveSyncCtx)
>    at System.Threading.ExecutionContext.Run(ExecutionContext
> executionContext, ContextCallback callback, Object state)
>    at System.Threading.ThreadHelper.ThreadStart()
>
> Inner Exception 1:
> JavaException: class org.apache.ignite.binary.BinaryObjectException: Binary
> type has different field types [typeName=Tables.csvCurrencyRates,
> fieldName=id, fieldTypeName1=UUID, fieldTypeName2=String]
>         at
>
> org.apache.ignite.internal.binary.BinaryUtils.mergeMetadata(BinaryUtils.java:1047)
>         at
>
> org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.addMeta(CacheObjectBinaryProcessorImpl.java:480)
>         at
>
> org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl$2.addMeta(CacheObjectBinaryProcessorImpl.java:207)
>         at
>
> org.apache.ignite.internal.binary.BinaryContext.updateMetadata(BinaryContext.java:1332)
>         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)
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: destroy cache holding residual metadata in memory (2.7)

Posted by Yakov Zhdanov <yz...@apache.org>.
Wayne, can you please share a reproducer for this problem that can be
launched from IDE?

--Yakov

Re: destroy cache holding residual metadata in memory (2.7)

Posted by Yakov Zhdanov <yz...@apache.org>.
Wayne, can you please share a reproducer for this problem that can be
launched from IDE?

--Yakov