Rui Fan created FLINK-40269:
-------------------------------

             Summary: Unaligned checkpoint restore may fail after rescale when 
a two-input task reads from the same upstream
                 Key: FLINK-40269
                 URL: https://issues.apache.org/jira/browse/FLINK-40269
             Project: Flink
          Issue Type: Bug
          Components: Runtime / Checkpointing
            Reporter: Rui Fan


We found a restore failure in Flink 2.3.0 when restoring from an unaligned 
checkpoint after rescaling the job.
This issue likely exists since the early unaligned-checkpoint-rescaling support 
around Flink 1.13/1.14.
It can happen when one two-input task has both inputs derived from the same 
upstream stream:
 
{code:java}
source 
|-- rebalance() --> CoMap input 1 
|-- keyBy(...) --> CoMap input 2{code}
 
 
During rescale restore, Flink can confuse the two input edges and route channel 
state with the wrong mapping. The job then fails during restore with an error 
like:
 
{code:java}
text Cannot select SubtaskConnectionDescriptor{inputSubtaskIndex=1, 
outputSubtaskIndex=0}; 
known channels are [SubtaskConnectionDescriptor{inputSubtaskIndex=0, 
outputSubtaskIndex=0}]{code}
 
 
Reproducer branch:
https://github.com/1996fanrui/flink/tree/repro/unaligned-channel-remap
 
Commit `2711b807112e50b4bdabbd1ca181f800e8968a15` adds a minimal ITCase that 
reproduces the failure 100% before the runtime fix: 
UnalignedCheckpointRescaleSameUpstreamITCase.java
 
The proposed fix is in commit `9b8560e69818e25ac20e19875aca55bdea208fcc`.



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

Reply via email to