[jira] [Commented] (IGNITE-20572) AssertionError in CDC on metadata deserialize

2023-11-21 Thread Ignite TC Bot (Jira)


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


[jira] [Commented] (IGNITE-20572) AssertionError in CDC on metadata deserialize

2023-10-05 Thread Sergey Korotkov (Jira)


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

Sergey Korotkov commented on IGNITE-20572:
--

Possible solution would be say to change the 
BinaryMetadataFileStore.writeMetadata  to create file atomically. 

The same way as in the MarshallerMappingFileStore.writeMapping using the 
ATOMIC_MOVE.

> 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
>Priority: Major
>  Labels: ise
>
> 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}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)