[ 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)