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