[
https://issues.apache.org/jira/browse/IGNITE-20572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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=7623306buildTypeId=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)