SEPURI-SAI-KRISHNA opened a new pull request, #11873: URL: https://github.com/apache/seatunnel/pull/11873
### Purpose of this pull request Fixes #11854. `backend.yml` defines 44 matrix jobs. Exactly one — `benchmark-test` — sets `fail-fast: false`. The other 43 inherit the GitHub Actions default of `fail-fast: true`, so the first leg to fail cancels every sibling leg in the same matrix. Because these matrices exist specifically to compare **JDK 8 against JDK 11** (and, for `unit-test`, **ubuntu against windows**), cancelling the siblings destroys the one thing the matrix was built to tell us. A single infrastructure flake on one leg produces a red job with no way to tell whether the failure was platform-specific, and the only recovery is to rerun the whole matrix. That `benchmark-test` sets the flag 30 lines below `unit-test` while `unit-test` does not suggests an oversight rather than a deliberate policy. ### Evidence Two runs from 2026-08-18, on two unrelated PRs, both on this repository's own CI: | PR | Run | Failing leg | Actual cause | Siblings cancelled | |---|---|---|---|---| | #11721 | [`32100301798`](https://github.com/SEPURI-SAI-KRISHNA/seatunnel/actions/runs/32100301798/attempts/1) | [`unit-test (8, ubuntu-latest)`](https://github.com/SEPURI-SAI-KRISHNA/seatunnel/actions/runs/32100301798/job/95601487349) | Maven Central `Connection reset` fetching `com.clickhouse:clickhouse-client:0.3.2-patch11` — **zero test failures in the entire 18,544-line log** | 3 | | #11724 | [`32101324858`](https://github.com/SEPURI-SAI-KRISHNA/seatunnel/actions/runs/32101324858/attempts/1) | [`unit-test (11, windows-latest)`](https://github.com/SEPURI-SAI-KRISHNA/seatunnel/actions/runs/32101324858/job/95634437084) | `AbstractSeaTunnelServerTest.before` → `IllegalStateException: Node failed to start!` (Hazelcast bootstrap) | 3 | Neither underlying cause had anything to do with the JDK or OS of the legs that were cancelled. In both cases the six cancelled legs were rerun and passed without a code change. This also matches analysis already recorded in the CI umbrella #11513: > Across all 113 timed completed first attempts, successful attempts had p50/p90 of 79/285 minutes, while failed attempts had p50/p90 of 317/736 minutes. Scope and defect type are confounders, but the data contradicts the desired fail-fast behavior: failures are generally discovered later, not earlier. and, on a single run of #10306: > Its latest attempt failed in about 20 minutes, but still produced 25 failed and **25 cancelled** lanes. ### On runner minutes The obvious objection is that `fail-fast: false` burns more runner time. In practice it usually saves it: - On a **green** run — the large majority — the flag changes nothing at all. It only takes effect once a leg has already failed. - On a **red** run, the cost is bounded by letting the remaining legs of one matrix finish. The alternative is a rerun of the *entire* matrix, because a cancelled leg yields no information about whether the failure was platform-specific. Both PRs above needed exactly that rerun. ### Relationship to #11513 #11513 includes the task *"Cancel queued/running expensive jobs when a required fast gate fails."* That is a different axis and this PR does not conflict with it: - **Cross-job cancellation on a meaningful signal** (a cheap required gate fails ⇒ stop the expensive jobs) — what #11513 proposes, and worth doing. - **Intra-matrix sibling cancellation on an arbitrary first failure** — what this PR removes, because the sibling legs are precisely the comparison being asked for. Removing the second does not prevent the first, and the fast-gate design is strictly more useful when each matrix reports its full result. ### Does this PR introduce _any_ user-facing change? No. The change is confined to `.github/workflows/backend.yml` and affects CI behaviour only. No runtime code, configuration option, default value, or public API is touched. ### How was this patch tested? - The diff consists of exactly 43 insertions of the single line ` fail-fast: false`, one per matrix job that lacked it, at the same indentation as the existing `benchmark-test` entry. No other line in the file changes. - The result parses as valid YAML, and a check over the parsed document confirms all 44 jobs carrying a `strategy:` block now resolve `fail-fast` to `false`, with none missed. - The edit was applied by an idempotent script that fails loudly if any `strategy:` block does not have the expected shape, so a future restructuring of the file cannot silently corrupt it. - Functional validation is CI itself: this PR's own run exercises the modified workflow. Jobs receiving the flag (43): `unit-test`, `updated-modules-integration-test-part-1` … `-part-8`, `engine-v2-it`, `edge-agent-it`, `engine-k8s-it`, `transform-v2-it-part-1`, `transform-v2-it-part-2`, `all-connectors-it-1` … `-it-8`, `jdbc-connectors-it-part-1` … `-part-7`, `jdbc-connectors-it-ddl`, `kudu-connector-it`, `amazonSqs-connector-it`, `kafka-connector-it`, `rocketmq-connector-it`, `elasticsearch-connector-it`, `mysql-cdc-connector-it`, `doris-connector-it`, `paimon-connector-it`, `oracle-cdc-connector-it`, `connector-file-local-it`, `connector-file-sftp-it`, `connector-redis-it`, `connector-sensorsdata-it`. If maintainers prefer a narrower first step, applying the flag to `unit-test` alone captures most of the diagnostic value, since that is the only job spanning two operating systems; the remaining 42 can then follow under #11513. I am happy to reduce the scope on request. ### Check list * [x] 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) — N/A, no binaries added. * [x] If necessary, please update the documentation to describe the new feature. — N/A, CI-only change with no user-facing behaviour. * [x] If necessary, please update `incompatible-changes.md` to describe the incompatibility caused by this PR. — N/A, no incompatible change. * [x] If you are contributing the connector code, please check that the following files are updated — N/A, no connector code. -- 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]
