CloverDew opened a new pull request, #10951: URL: https://github.com/apache/seatunnel/pull/10951
### Purpose of this pull request This PR fixes a Flink schema-evolution deadlock path when checkpoints stop progressing, notably seen on Flink 1.13-style behavior where some source subtasks finish and checkpoint completion stalls. Fix: https://github.com/apache/seatunnel/issues/10787 **Main changes in seatunnel-translation-flink-common:** 1. Add a fallback timer in SchemaOperator to detect stalled checkpoint completion and still apply pending schema changes safely on task thread. 2. Add downstream flush signaling (flush_signal) after schema change completion. 3. Enhance FlinkSinkWriter to: flush/commit pending data before applying schema change, react to flush_signal, add/adjust unit tests for fallback and flush/commit behavior. **Also in this branch:** E2E Flink schema-change test configs raise parallelism from 1 to 5 in: - mysqlcdc_to_mysql_with_flink_schema_change.conf - mysqlcdc_to_mysql_with_flink_schema_change_exactly_once.conf ### Does this PR introduce _any_ user-facing change? Yes. **Previous behavior:** On Flink1.13 With schema evolution enabled, if checkpoint completion stalled, pending schema changes could remain blocked indefinitely and data flow could hang. **New behavior:** - SchemaOperator detects checkpoint stall (fallback timeout) and proceeds with deferred schema-change apply flow. - Sink writer flushes/commits buffered records around schema-change boundaries (or after flush signal), reducing risk of indefinite blocking in this scenario. **Compatibility:** - No public config key removals/renames and no public API/SPI break intended. - This is a behavior fix in runtime coordination/commit flow. ### How was this patch tested? The above configuration file has been adjusted. For specific testing, please see: MysqlCDCWithFlinkSchemaChangeIT ### Check list * [ ] If any new Jar binary package adding in your PR, please add License Notice according [New License Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/developer/new-license.md) * [ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs * [ ] If necessary, please update `incompatible-changes.md` to describe the incompatibility caused by this PR. * [ ] If you are contributing the connector code, please check that the following files are updated: 1. Update [plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties) and add new connector information in it 5. Update the pom file of [seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml) 6. Add ci label in [label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml) 7. Add e2e testcase in [seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/) 8. Update connector [plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config) -- 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]
