You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ Release entries are curated summaries for readers. Work item traceability remain
26
26
27
27
### Fixed
28
28
29
-
- Fixed guard execution for noisy commands and detached child processesby collecting output safely and reporting timeout state more clearly.
29
+
- Fixed guard execution for noisy commands, detached child processes, and CI-safe process-group cleanup by collecting output safely, only signaling isolated guard child process groups, and reporting timeout state more clearly.
30
30
- Fixed `self-update` archive extraction so release archives and cargo-binstall resolve binaries under `govctl-v{{ version }}-{{ target }}/{{ bin }}`.
31
31
- Rendered acceptance-criterion category labels in `govctl work show`, giving reviewers the same category signal as raw TOML.
title = "Fix guard process-group cleanup killing CI"
6
+
status = "done"
7
+
created = "2026-05-25"
8
+
started = "2026-05-25"
9
+
completed = "2026-05-25"
10
+
11
+
[content]
12
+
description = "Fix repeated GitHub Actions SIGTERM failures during verification tests after the guard process-group cleanup change. The guard runner must only signal process groups it has proven are isolated guard child groups, so timeout cleanup cannot terminate the CI runner or cargo test process."
13
+
14
+
[[content.journal]]
15
+
date = "2026-05-25"
16
+
scope = "ci"
17
+
content = """
18
+
Investigated repeated GitHub Actions failures on commit 53488bb0. CI and Pre-commit both reached `cargo test --all-features` and were terminated with SIGTERM/exit 143 during `tests/test_verify.rs`, with no Rust assertion or compilation failure. This points to the recent guard process-group cleanup path rather than changelog or docs changes.
19
+
20
+
Updated guard cleanup to capture the actual child process group after spawn, reject the current runner/cargo process group, require the group to match the isolated child PID, and signal it via direct Unix `kill` only after those checks. Added Unix regression coverage for rejecting the current process group and capturing an isolated child group."""
21
+
22
+
[[content.journal]]
23
+
date = "2026-05-25"
24
+
scope = "validation"
25
+
content = "Verified the process-group cleanup fix with cargo fmt --all -- --check, cargo test --test test_verify -- --test-threads=1, cargo test verification::unix_process_group_tests --all-features, cargo clippy --all-features -- -D warnings, full cargo test --all-features, and cargo run --quiet -- check."
26
+
27
+
[[content.acceptance_criteria]]
28
+
text = "cargo fmt, relevant tests, full tests, clippy, and govctl check pass"
29
+
status = "done"
30
+
category = "chore"
31
+
32
+
[[content.acceptance_criteria]]
33
+
text = "Regression coverage checks guard process-group capture rejects the current process group"
34
+
status = "done"
35
+
category = "chore"
36
+
37
+
[[content.acceptance_criteria]]
38
+
text = "Guard process cleanup only signals an isolated guard child process group, never the current runner process group"
0 commit comments