[ https://issues.apache.org/jira/browse/IGNITE-20572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17788341#comment-17788341 ]
Ignite TC Bot commented on IGNITE-20572: ---------------------------------------- {panel:title=Branch: [pull/11055/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} {panel:title=Branch: [pull/11055/head] Base: [master] : No new tests found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}{panel} [TeamCity *--> Run :: All* Results|https://ci2.ignite.apache.org/viewLog.html?buildId=7623306&buildTypeId=IgniteTests24Java8_RunAll] > AssertionError in CDC on metadata deserialize > --------------------------------------------- > > Key: IGNITE-20572 > URL: https://issues.apache.org/jira/browse/IGNITE-20572 > Project: Ignite > Issue Type: Bug > Reporter: Sergey Korotkov > Assignee: Maksim Timonin > Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > CDC process terminates sometimes with the below error. > One the cases is cache creation which causes the creation of the .bin file in > the binary_meta directory. Say if custom indexed types are passed via the > CacheConfiguration.setIndexedTypes. > Looks like the race condition. CDC processed the binary meta file which is > already created but still empty. > {noformat} > [2023-10-04T22:29:32,673][ERROR][Thread-0][] Cdc error > java.lang.AssertionError: null > at > org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:302) > ~[classes/:?] > at > org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:120) > ~[classes/:?] > at > org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:92) > ~[classes/:?] > at > org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:10761) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.binary.BinaryMetadataFileStore.restoreMetadata(BinaryMetadataFileStore.java:222) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.binary.BinaryMetadataFileStore.restoreMetadata(BinaryMetadataFileStore.java:216) > ~[classes/:?] > at > org.apache.ignite.internal.processors.cache.binary.CacheObjectBinaryProcessorImpl.cacheMetadataLocally(CacheObjectBinaryProcessorImpl.java:1076) > ~[classes/:?] > at > org.apache.ignite.internal.cdc.CdcMain.lambda$updateTypes$4(CdcMain.java:616) > ~[classes/:?] > at > java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) > ~[?:?] > at > java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) > ~[?:?] > at > java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) > ~[?:?] > at > java.util.stream.StreamSpliterators$WrappingSpliterator.lambda$initPartialTraversalState$0(StreamSpliterators.java:294) > ~[?:?] > at > java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.fillBuffer(StreamSpliterators.java:206) > ~[?:?] > at > java.util.stream.StreamSpliterators$AbstractWrappingSpliterator.doAdvance(StreamSpliterators.java:161) > ~[?:?] > at > java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300) > ~[?:?] > at java.util.Spliterators$1Adapter.hasNext(Spliterators.java:681) ~[?:?] > at org.apache.ignite.internal.cdc.CdcMain.updateTypes(CdcMain.java:627) > ~[classes/:?] > at > org.apache.ignite.internal.cdc.CdcMain.updateMetadata(CdcMain.java:588) > ~[classes/:?] > at > org.apache.ignite.internal.cdc.CdcMain.consumeWalSegmentsUntilStopped(CdcMain.java:463) > ~[classes/:?] > at org.apache.ignite.internal.cdc.CdcMain.runX(CdcMain.java:324) > ~[classes/:?] > at org.apache.ignite.internal.cdc.CdcMain.run(CdcMain.java:266) > [classes/:?] > at java.lang.Thread.run(Thread.java:834) [?:?] > {noformat} > *** > Possible solution would be to change the > BinaryMetadataFileStore.writeMetadata to create file atomically. > The same way as in the MarshallerMappingFileStore.writeMapping using the > ATOMIC_MOVE. -- This message was sent by Atlassian Jira (v8.20.10#820010)