hutiefang76 opened a new pull request, #12510: URL: https://github.com/apache/seatunnel/pull/12510
### Purpose of this pull request Fixes #12509. After a worker is lost, a pipeline can fail to allocate enough slots while replacement capacity is still joining. The recovery branch ignored `preApplyResources(this) == false` and continued deploying with the previous allocation futures, which can refer to released slots. Stop that recovery attempt with `NoEnoughResourceException` and let the existing bounded pipeline failure/retry path handle it. The error includes the pipeline context. ### Does this PR introduce _any_ user-facing change? Yes. A failed resource allocation no longer proceeds to task deployment. It uses the configured retry budget and interval; their defaults and the successful allocation path are unchanged. English and Chinese retry documentation explain the capacity/retry boundary. ### How was this patch tested? - The new insufficient-resource regression fails before the fix; all three new tests pass afterward. They cover failed allocation, successful allocation, and retry-budget exhaustion. - JDK 17: 18 tests across `SubPlanResourceRestoreTest`, `JobMasterMasterFailoverResourceTest`, `ResourceManagerTest`, and `FixSlotResourceTest`; zero failures/errors/skips. Reactor `verify` passed. - JDK 8: the three focused tests and reactor `verify` passed. - Spotless apply/check and `git diff --check` passed. Local integration validation used one Master and two fixed-slot Worker JVMs, checkpoint-enabled bounded input, and PostgreSQL/S3 DuckLake. Killing a writer Worker and starting a new Worker at a different address reproduced the stale-slot failure without the guard. With the guard, both ordinary and bulk append recovered after three attempts and read back all 400 distinct input IDs on the replacement worker. Bulk replayed 10 rows; this is append-only delivery evidence, not an exactly-once claim. The integration checkout also includes the pending DuckLake connector patches; they are not part of this PR. ### Check list - [x] Added regression tests. - [x] Updated English and Chinese documentation. - No new dependencies, binaries, public configuration options, or incompatible API changes. -- 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]
