1996fanrui opened a new pull request, #28856: URL: https://github.com/apache/flink/pull/28856
## What is the purpose of the change This pull request fixes channel state assignment for unaligned checkpoint recovery when a downstream job vertex has multiple input gates connected to the same upstream job vertex. Previously, `TaskStateAssignment` looked up connected assignments by the upstream/downstream `TaskStateAssignment` instance. If multiple edges connect the same pair of job vertices, this can select the first matching edge and use the wrong input gate or result partition mapping. ## Brief change log - Use `IntermediateDataSetID` to resolve the corresponding input gate and result partition during channel state assignment. - Add an ITCase covering unaligned checkpoint rescaling with duplicate same-upstream inputs. - Add a unit test covering duplicate job vertex connections with different channel state mappers. ## Verifying this change This change added tests and can be verified as follows: - `./mvnw -pl flink-runtime -Dtest=StateAssignmentOperationTest -Djdk11 -Pjava11-target test` - `./mvnw -pl flink-tests -Dtest=UnalignedCheckpointRescaleSameUpstreamITCase -Dsurefire.failIfNoSpecifiedTests=false -Djdk11 -Pjava11-target -DtrimStackTrace=false surefire:test@integration-tests` ## Does this pull request potentially affect one of the following parts: - Dependencies: no - Public API: no - Serializers: no - Runtime per-record code paths: no - Deployment or recovery: yes, checkpoint recovery - S3 file system connector: no ## Documentation - Does this pull request introduce a new feature? no -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
