[ 
https://issues.apache.org/jira/browse/FLINK-28034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-28034:
-----------------------------------
    Labels: pull-request-available  (was: )

> ClassCastException occurred in creating a checkpoint with merge windows 
> ------------------------------------------------------------------------
>
>                 Key: FLINK-28034
>                 URL: https://issues.apache.org/jira/browse/FLINK-28034
>             Project: Flink
>          Issue Type: Bug
>          Components: Runtime / Checkpointing, Runtime / State Backends
>    Affects Versions: 1.15.0
>            Reporter: Takayuki Eimizu
>            Priority: Major
>              Labels: pull-request-available
>
> h1. Summary
> In Flink 1.15.0, the combination of following functions always occur 
> ClassCastException.
>  - Session Window
>  - Checkpoint
>  - Keyed State
> The following repository provides minimal source code that can combine these 
> features to reproduce the exception.
> [https://github.com/t-eimizu/flink-checkpoint-with-merging-window]
>  
> h1. Description
> h2. How the Exception Occurred
>  
> In the process window function of the session window, we must use 
> `context.globalState()`
> instead of `context.windowState()`. If you use `context.windowState()` in 
> this situation, Flink throws `UnsupportedOperationException`.
>  
> So we have to do following:
>  
> {code:java}
>    stPreviousValue = context.globalState().getState(desc4PreviousValue);     
> {code}
>  
> Then stPreviousValue will have the following fields:
> ||Field Name||Value||
> |currentNamespace|VoidNamespace|
> |namespaceSerializer|TimeWindow$serializer|
> As a result, when flink create checkpoint on this job, ClassCastException 
> occurs.
> {code:java}
> 2022-06-14 11:04:57,212 INFO  
> org.apache.flink.streaming.runtime.tasks.AsyncCheckpointRunnable [] - 
> ProcessingData -> Sink: PrintData (1/1)#0 - asynchronous part of checkpoint 1 
> could not be completed. java.util.concurrent.ExecutionException: 
> java.lang.ClassCastException: class 
> org.apache.flink.runtime.state.VoidNamespace cannot be cast to class 
> org.apache.flink.streaming.api.windowing.windows.TimeWindow 
> (org.apache.flink.runtime.state.VoidNamespace and 
> org.apache.flink.streaming.api.windowing.windows.TimeWindow are in unnamed 
> module of loader 'app')     at 
> java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:?]     at 
> java.util.concurrent.FutureTask.get(FutureTask.java:191) ~[?:?]     at 
> org.apache.flink.util.concurrent.FutureUtils.runIfNotDoneAndGet(FutureUtils.java:645)
>  ~[flink-core-1.15.0.jar:1.15.0]     at 
> org.apache.flink.streaming.api.operators.OperatorSnapshotFinalizer.<init>(OperatorSnapshotFinalizer.java:54)
>  ~[flink-streaming-java-1.15.0.jar:1.15.0]     at 
> org.apache.flink.streaming.runtime.tasks.AsyncCheckpointRunnable.finalizeNonFinishedSnapshots(AsyncCheckpointRunnable.java:191)
>  ~[flink-streaming-java-1.15.0.jar:1.15.0]     at 
> org.apache.flink.streaming.runtime.tasks.AsyncCheckpointRunnable.run(AsyncCheckpointRunnable.java:124)
>  [flink-streaming-java-1.15.0.jar:1.15.0]     at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  [?:?]     at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  [?:?]     at java.lang.Thread.run(Thread.java:834) [?:?] Caused by: 
> java.lang.ClassCastException: class 
> org.apache.flink.runtime.state.VoidNamespace cannot be cast to class 
> org.apache.flink.streaming.api.windowing.windows.TimeWindow 
> (org.apache.flink.runtime.state.VoidNamespace and 
> org.apache.flink.streaming.api.windowing.windows.TimeWindow are in unnamed 
> module of loader 'app')     at 
> org.apache.flink.streaming.api.windowing.windows.TimeWindow$Serializer.serialize(TimeWindow.java:130)
>  ~[flink-streaming-java-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateMapSnapshot.writeState(CopyOnWriteStateMapSnapshot.java:145)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.heap.AbstractStateTableSnapshot.writeStateInKeyGroup(AbstractStateTableSnapshot.java:116)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.heap.CopyOnWriteStateTableSnapshot.writeStateInKeyGroup(CopyOnWriteStateTableSnapshot.java:38)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.heap.HeapSnapshotStrategy.lambda$asyncSnapshot$3(HeapSnapshotStrategy.java:172)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.SnapshotStrategyRunner$1.callInternal(SnapshotStrategyRunner.java:91)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.SnapshotStrategyRunner$1.callInternal(SnapshotStrategyRunner.java:88)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> org.apache.flink.runtime.state.AsyncSnapshotCallable.call(AsyncSnapshotCallable.java:78)
>  ~[flink-runtime-1.15.0.jar:1.15.0]     at 
> java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]     at 
> org.apache.flink.util.concurrent.FutureUtils.runIfNotDoneAndGet(FutureUtils.java:642)
>  ~[flink-core-1.15.0.jar:1.15.0]     ... 6 more  {code}
> h2.  workaround
> Turn off the checkpoint function.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to