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

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

> Rework StreamTask channel-state recovery into an async future chain; start 
> consumption only after filtering completes
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLINK-39522
>                 URL: https://issues.apache.org/jira/browse/FLINK-39522
>             Project: Flink
>          Issue Type: Sub-task
>            Reporter: Rui Fan
>            Assignee: Rui Fan
>            Priority: Major
>              Labels: pull-request-available
>
> Restructure StreamTask channel-state recovery into an asynchronous future 
> chain on the channelIOExecutor and unify recovery completion on the gates' 
> state-consumed futures.
> Behavior change (checkpointing-during-recovery enabled only): the task now 
> consumes recovered state only after rescale filtering has fully completed — 
> previously consumption overlapped with filtering. Filtered buffers are held 
> in the recovered channels' memory queues and handed to the physical channels 
> through the push interface at conversion. Rationale: a checkpoint taken 
> during recovery can only proceed once filtering is complete; making the order 
> strict greatly simplifies the coordination between filtering and 
> checkpointing.
> Scope:
>  * Split restoreStateAndGates into recoverChannelsWithCheckpointing / 
> recoverChannelsWithoutCheckpointing; recovery completion suspends the restore 
> mailbox loop; recovery failures are rethrown from restoreInternal instead of 
> being swallowed.
>  * Flag-off path preserves master behavior (per-gate conversion off each 
> gate's own state-consumed future — also avoids a selective-reading 
> multi-input deadlock).
>  * Remove the now-unused filtering-progress gate API 
> (getBufferFilteringCompleteFuture, set/isCheckpointingDuringRecoveryEnabled).
>  * Defer task finish until recovery completes (fixes an existing race where a 
> finite task could finish before recovery completed; also affects the non-CDR 
> path as a hardening).



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

Reply via email to