[ 
https://issues.apache.org/jira/browse/IGNITE-15769?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17449198#comment-17449198
 ] 

Dmitry Pavlov commented on IGNITE-15769:
----------------------------------------

Folks, please fill fix version and close PR 
https://github.com/apache/ignite/pull/9501 if it is not needed anymore

> IgniteToIgniteCdcStreamer fails on complex keys
> -----------------------------------------------
>
>                 Key: IGNITE-15769
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15769
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Ilya Shishkov
>            Assignee: Nikolay Izhikov
>            Priority: Blocker
>         Attachments: CdcFailureOnComplexKey.html, CdcFailureOnComplexKey.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> In case if complex key is used (i.e. custom class or composite primary key in 
> terms of SQL), when data is put into cache, below error occurs in 
> IgniteToIgniteCdcStreamer which streams data from updated datacenter:
> {code}
> [18:46:36,757][SEVERE][Thread-1][] Cdc error
> class org.apache.ignite.IgniteException: Transaction has been rolled back: 
> 5b8c25a7c71-00000000-0ea3-dad8-0000-000000000002
>       at 
> org.apache.ignite.cdc.IgniteToIgniteCdcStreamer.onEvents(IgniteToIgniteCdcStreamer.java:138)
>       at 
> org.apache.ignite.internal.cdc.WalRecordsConsumer.onRecords(WalRecordsConsumer.java:157)
>       at 
> org.apache.ignite.internal.cdc.CdcMain.consumeSegment(CdcMain.java:472)
>       at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
>       at 
> java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373)
>       at java.util.ArrayList.forEach(ArrayList.java:1257)
>       at java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:390)
>       at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
>       at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
>       at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
>       at java.util.stream.Sink$ChainedReference.end(Sink.java:258)
>       at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
>       at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
>       at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
>       at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
>       at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
>       at 
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
>       at 
> org.apache.ignite.internal.cdc.CdcMain.consumeWalSegmentsUntilStopped(CdcMain.java:403)
>       at org.apache.ignite.internal.cdc.CdcMain.runX(CdcMain.java:285)
>       at org.apache.ignite.internal.cdc.CdcMain.run(CdcMain.java:229)
>       at java.lang.Thread.run(Thread.java:748)
> Caused by: class 
> org.apache.ignite.internal.transactions.IgniteTxRollbackCheckedException: 
> Transaction has been rolled back: 
> 5b8c25a7c71-00000000-0ea3-dad8-0000-000000000002
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:4385)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.putAllConflict(GridCacheAdapter.java:2606)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheProxyImpl.putAllConflict(GridCacheProxyImpl.java:565)
>       at 
> org.apache.ignite.cdc.CdcEventsApplier.applyIf(CdcEventsApplier.java:151)
>       at 
> org.apache.ignite.cdc.CdcEventsApplier.apply(CdcEventsApplier.java:126)
>       at 
> org.apache.ignite.cdc.IgniteToIgniteCdcStreamer.onEvents(IgniteToIgniteCdcStreamer.java:119)
>       ... 20 more
> Caused by: class org.apache.ignite.IgniteCheckedException: Unexpected binary 
> object class [type=class 
> org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl]
>       at 
> org.apache.ignite.internal.processors.query.property.QueryBinaryProperty.value(QueryBinaryProperty.java:128)
>       at 
> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateProps(QueryTypeDescriptorImpl.java:615)
>       at 
> org.apache.ignite.internal.processors.query.QueryTypeDescriptorImpl.validateKeyAndValue(QueryTypeDescriptorImpl.java:587)
>       at 
> org.apache.ignite.internal.processors.query.GridQueryProcessor.validateKeyAndValue(GridQueryProcessor.java:3685)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheContext.validateKeyAndValue(GridCacheContext.java:1883)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.enlistWriteEntry(GridNearTxLocal.java:1550)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.enlistWrite(GridNearTxLocal.java:1278)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAllAsync0(GridNearTxLocal.java:927)
>       at 
> org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.putAllDrAsync(GridNearTxLocal.java:553)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$23.inOp(GridCacheAdapter.java:2608)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter$SyncInOp.op(GridCacheAdapter.java:5641)
>       at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:4366)
>       ... 25 more
> {code}
> Here is a problem reproducer (should be applied to master of 
> ignite-extensions):  [^CdcFailureOnComplexKey.patch] 
> There are 3 test failures (total amount of test - 4):
> # Cache create via DDL with not null fields in key.
> # Cache create via DDL without not null-fields in key (stracktrace differs 
> from above failure).
> # Cache create vie IgniteCache API + QueryEntity + index in key class 
> (QueryEntity#setIndexes).
> One test does not fail: cache create via IgniteCache API + QueryEntity, but 
> without indexes in key.
> In all failure cases below error is present in stack trace:
> {code}
> Caused by: class org.apache.ignite.IgniteCheckedException: Unexpected binary 
> object class [type=class 
> org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl]
>       at 
> org.apache.ignite.internal.processors.query.property.QueryBinaryProperty.value(QueryBinaryProperty.java:128)
> {code}
> Logs of reproducer from IDE:  [^CdcFailureOnComplexKey.html] 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to