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]

Reply via email to