[ https://issues.apache.org/jira/browse/IGNITE-15769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Shishkov updated IGNITE-15769: ----------------------------------- Description: In case if complex key is used (i.e. custom class or composite primary key in terms of SQL), when data is put in cache, below error occurs in IgniteToIgniteCdcStreamer: {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: # 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} was: In case if complex key is used (i.e. custom class or composite primary key in terms of SQL), when data is put in cache, below error occurs in IgniteToIgniteCdcStreamer: {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: # 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) at {code} > 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 > Priority: Major > Attachments: CdcFailureOnComplexKey.patch > > > In case if complex key is used (i.e. custom class or composite primary key in > terms of SQL), when data is put in cache, below error occurs in > IgniteToIgniteCdcStreamer: > {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: > # 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} -- This message was sent by Atlassian Jira (v8.3.4#803005)