Deprecate FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY
Part of gitlab-org#23127 (assigned in note_3666997909).
Flag: FF_USE_WINDOWS_LEGACY_PROCESS_STRATEGY, a legacy switch-back, default false since !4659 (merged) (2024-02-26), no reverts.
Verdict: Categorization confirmed. Removal was deferred while #39297 (closed) was open, because the default path could not terminate a job gracefully on a Windows service and setting this flag was the only workaround. That defect is fixed and released in 19.4, so the flag no longer protects anything.
Action: Deprecate now and schedule removal, per vtak's guidance. Deprecation in !7351 (merged). Removal tracked in #39808, milestone 19.8.
Work breakdown
| # | Item | Milestone | MR | State |
|---|---|---|---|---|
| 1 | Console restore failure force-kills a job that is stopping gracefully | 19.4 | !7275 (merged) | Merged 2026-09-10 |
| 2 | Canceling a job always kills the process on a Windows service | 19.4 | !7276 (merged) | Merged 2026-09-04 |
| 3 | Test process termination when the runner holds no console | 19.5 | !7275 (merged) | Merged 2026-09-10 |
| 4 | Deprecate the flag, schedule removal | 19.5 | !7351 (merged) | Open |
| 5 | Remove the flag and the legacy code path | 19.8 | — | Not started |
Notes on the order:
- Item 3 landed inside !7275 (merged) rather than its own merge request. !7277 (closed) was closed once its content was folded in.
- Item 1 was a defect in the legacy path that this flag selects, so it disappears with the flag. It was in the chain because item 2 reuses the same console attach and restore sequence.
- Item 4 changes no behavior. The flag still works and its default is unchanged, so anyone who sets it today is unaffected until item 5.
- Item 5 is the removal. Nothing on .com exercises this path, since it needs a self-managed Windows runner using the shell executor, installed as a service. The signal before removal is the absence of community reports, not telemetry.
Refs: introduced in !2739 (merged) · default flipped in !4659 (merged)
Edited by Lachlan Grant