restart::tests fail (5–6) and stall (2) on dev and every branch #174

Closed
opened 2026-10-12 00:55:53 +00:00 by kayg · 41 comments
Owner

Every job's scripts/verify fast since at least 93b00f5a reports restart::tests failures (cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null, rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode, real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin, early_hangup_is_queued_until_control_installs_its_handler, restart_requests_use_the_servers_binary_and_reject_untrusted_paths) and two stalls (closed_reply_and_missing_reload_target_do_not_end_restart_control, default_res...). Jobs have been calling them pre-existing. Release pipeline round 4 changes this code, so the gate must be trustworthy first. Investigation job: fix-restart-tests.

Every job's scripts/verify fast since at least 93b00f5a reports restart::tests failures (cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null, rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode, real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin, early_hangup_is_queued_until_control_installs_its_handler, restart_requests_use_the_servers_binary_and_reject_untrusted_paths) and two stalls (closed_reply_and_missing_reload_target_do_not_end_restart_control, default_res...). Jobs have been calling them pre-existing. Release pipeline round 4 changes this code, so the gate must be trustworthy first. Investigation job: fix-restart-tests.
Author
Owner

Starting investigation on fix-restart-tests at base 378b97da41584876c5aed8ba9828700c8511cd7d (origin/dev). The issue and its available comments contain no earlier findings; fj exposes no parent issue for #174. Root cause is not established yet; I’m reproducing the named tests in plain-shell and systemd scope conditions before choosing a fix.

Starting investigation on `fix-restart-tests` at base `378b97da41584876c5aed8ba9828700c8511cd7d` (`origin/dev`). The issue and its available comments contain no earlier findings; `fj` exposes no parent issue for #174. Root cause is not established yet; I’m reproducing the named tests in plain-shell and systemd scope conditions before choosing a fix.
Author
Owner

Baseline finding at 378b97da41584876c5aed8ba9828700c8511cd7d: the 16 restart::tests cases were run individually in a plain shell from the job scratch target, with a 10 s outer deadline. Five fail: cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null (PermissionDenied opening both candidates), early_hangup_is_queued_until_control_installs_its_handler (2 s inner timeout), real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin, restart_requests_use_the_servers_binary_and_reject_untrusted_paths (5 s inner timeout), and rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode (PermissionDenied). Two hang until the 10 s deadline: closed_reply_and_missing_reload_target_do_not_end_restart_control and default_restart_opens_the_receiver_target_exactly_once. The combined cargo test -p infraternal restart also reaches the 10 s deadline. Failures reproduce individually, so cross-test interaction alone is not the cause. Root cause remains under investigation; the initial scoped matrix invocation was rejected by systemd-run because --wait cannot be combined with --scope and is being rerun with valid syntax. Host load during capture ranged from 13.06 to 53.64.

Baseline finding at `378b97da41584876c5aed8ba9828700c8511cd7d`: the 16 `restart::tests` cases were run individually in a plain shell from the job scratch target, with a 10 s outer deadline. Five fail: `cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null` (PermissionDenied opening both candidates), `early_hangup_is_queued_until_control_installs_its_handler` (2 s inner timeout), `real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin`, `restart_requests_use_the_servers_binary_and_reject_untrusted_paths` (5 s inner timeout), and `rootless_even_marked_replacement_is_cold_and_open_fd_pins_the_inode` (PermissionDenied). Two hang until the 10 s deadline: `closed_reply_and_missing_reload_target_do_not_end_restart_control` and `default_restart_opens_the_receiver_target_exactly_once`. The combined `cargo test -p infraternal restart` also reaches the 10 s deadline. Failures reproduce individually, so cross-test interaction alone is not the cause. Root cause remains under investigation; the initial scoped matrix invocation was rejected by systemd-run because `--wait` cannot be combined with `--scope` and is being rerun with valid syntax. Host load during capture ranged from 13.06 to 53.64.
Author
Owner

Root cause identified: this is a test-fixture defect, not a replacement-path product bug or a systemd-scope difference. The test harness executable at the job scratch target is mode 0775 (stat), and the inherited umask is 0002; restart_binary::Opened::open deliberately rejects mode & 0o6022 != 0 (group/world write or set-id bits). Tests that pass current_exe() or a std::fs::copy of it as the replacement therefore get PermissionDenied. The control tests then wait for a valid request after the server correctly refuses that candidate; this accounts for the two stalls and the request timeout. All seven cases reproduce in both plain shell and a valid systemd-run --user --scope -p CPUWeight=10000 run, with matching outcomes. readelf -n also shows no ACFIINFRATERNAL note in the test harness, so the “marked” rootless/root-owned fixtures have a second test-fixture gap that must be fixed. Root cause evidence: test binary 0775 1001:1001, umask u=rwx,g=rwx,o=rx, validator at crates/infraternal/src/restart_binary.rs:38.

Root cause identified: this is a test-fixture defect, not a replacement-path product bug or a systemd-scope difference. The test harness executable at the job scratch target is mode `0775` (`stat`), and the inherited umask is `0002`; `restart_binary::Opened::open` deliberately rejects `mode & 0o6022 != 0` (group/world write or set-id bits). Tests that pass `current_exe()` or a `std::fs::copy` of it as the replacement therefore get `PermissionDenied`. The control tests then wait for a valid request after the server correctly refuses that candidate; this accounts for the two stalls and the request timeout. All seven cases reproduce in both plain shell and a valid `systemd-run --user --scope -p CPUWeight=10000` run, with matching outcomes. `readelf -n` also shows no `ACFIINFRATERNAL` note in the test harness, so the “marked” rootless/root-owned fixtures have a second test-fixture gap that must be fixed. Root cause evidence: test binary `0775 1001:1001`, umask `u=rwx,g=rwx,o=rx`, validator at `crates/infraternal/src/restart_binary.rs:38`.
Author
Owner

A second test-only defect surfaced after private fixture modes were fixed: the fd-exec successor path was detected by current_exe().file_name() == "retained", although the exec preserves the old install spelling in argv[0]. The nested test repeated the replacement until its 6 s deadline. It now detects the successor by comparing /proc/self/exe inode with the retained file. CARGO_TARGET_DIR=... cargo test -p infraternal 'restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin' -- --exact --nocapture passes in 0.78 s. This remains a test harness fix; the production path is unchanged.

A second test-only defect surfaced after private fixture modes were fixed: the fd-exec successor path was detected by `current_exe().file_name() == "retained"`, although the exec preserves the old install spelling in argv[0]. The nested test repeated the replacement until its 6 s deadline. It now detects the successor by comparing `/proc/self/exe` inode with the retained file. `CARGO_TARGET_DIR=... cargo test -p infraternal 'restart::tests::real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin' -- --exact --nocapture` passes in 0.78 s. This remains a test harness fix; the production path is unchanged.
Author
Owner

Verification setup finding: setting INFRATERNAL_TEST_STATE_ROOT to this job’s long scratch path made the two agent_review tests selected by the broad cargo test -p infraternal restart filter fail their existing sun_path guard at 116 bytes. Restart-only fixture sockets were 100 bytes and passed. Removing that override uses the documented short $HOME/.cache/codex-scratch/infraternal root; the combined scope run then passes: 18 matching unit tests (4.18 s) and 2 matching integration tests (4.43 s). This was a matrix configuration issue; no production change was needed.

Verification setup finding: setting `INFRATERNAL_TEST_STATE_ROOT` to this job’s long scratch path made the two `agent_review` tests selected by the broad `cargo test -p infraternal restart` filter fail their existing `sun_path` guard at 116 bytes. Restart-only fixture sockets were 100 bytes and passed. Removing that override uses the documented short `$HOME/.cache/codex-scratch/infraternal` root; the combined scope run then passes: 18 matching unit tests (4.18 s) and 2 matching integration tests (4.43 s). This was a matrix configuration issue; no production change was needed.
Author
Owner

A no---locked ten-run series exposed two test-only races after the fixture-mode fix: run 1 failed closed_reply_and_missing_reload_target_do_not_end_restart_control because shutdown() closes only the requester's write half, so the reply may still succeed; run 2 failed reload_reopens_install_path_when_the_running_inode_was_replaced with ETXTBSY while spawning the copied executable. Logs: /home/kayg/.cache/codex-scratch/fix-restart-tests/matrix/ten-exact-1.log and ten-exact-2.log. The other eight runs passed. I am making the closed peer deterministic and changing the deleted-image fixture to unlink its own execution path before installing the replacement.

A no-`--locked` ten-run series exposed two test-only races after the fixture-mode fix: run 1 failed `closed_reply_and_missing_reload_target_do_not_end_restart_control` because `shutdown()` closes only the requester's write half, so the reply may still succeed; run 2 failed `reload_reopens_install_path_when_the_running_inode_was_replaced` with `ETXTBSY` while spawning the copied executable. Logs: `/home/kayg/.cache/codex-scratch/fix-restart-tests/matrix/ten-exact-1.log` and `ten-exact-2.log`. The other eight runs passed. I am making the closed peer deterministic and changing the deleted-image fixture to unlink its own execution path before installing the replacement.
Author
Owner

Committed test-harness fix 4fcba8a6. Root cause was the shared build umask leaving the cargo test ELF group-writable, which the production validator correctly refuses; related tests also had nondeterministic half-close and active-image replacement fixtures. The production validator remains unchanged. Evidence: all 10 consecutive cargo test -p infraternal restart runs passed (7.86–9.31 s; natural 1-minute load 37.1–42.7); both affected tests passed alone in plain shell and systemd-run --user --scope -p CPUWeight=10000.

Committed test-harness fix `4fcba8a6`. Root cause was the shared build umask leaving the cargo test ELF group-writable, which the production validator correctly refuses; related tests also had nondeterministic half-close and active-image replacement fixtures. The production validator remains unchanged. Evidence: all 10 consecutive `cargo test -p infraternal restart` runs passed (7.86–9.31 s; natural 1-minute load 37.1–42.7); both affected tests passed alone in plain shell and `systemd-run --user --scope -p CPUWeight=10000`.
Author
Owner

The final plain-shell isolated rerun of real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin hit its 6 s subprocess bound under natural host load (outer test elapsed 7.51 s); the same test passed in the weighted scope in 0.63 s, and the combined plain suite passed. This is a test deadline that is too tight for the lower-weight plain cgroup, not a restart failure. I am raising this child bound to 9 s (under the 10 s limit) and will repeat the focused and ten-run scoped gates.

The final plain-shell isolated rerun of `real_fd_exec_pins_replacement_and_cold_rollback_uses_null_stdin` hit its 6 s subprocess bound under natural host load (outer test elapsed 7.51 s); the same test passed in the weighted scope in 0.63 s, and the combined plain suite passed. This is a test deadline that is too tight for the lower-weight plain cgroup, not a restart failure. I am raising this child bound to 9 s (under the 10 s limit) and will repeat the focused and ten-run scoped gates.
Author
Owner

Committed the plain-shell load tolerance as e1749321. The isolated real-fd test passes in both contexts after the 9 s child bound: plain shell 1.91 s test time (32.05 s compile), weighted scope 0.72 s. The bound remains below the required 10 s stall ceiling.

Committed the plain-shell load tolerance as `e1749321`. The isolated real-fd test passes in both contexts after the 9 s child bound: plain shell 1.91 s test time (32.05 s compile), weighted scope 0.72 s. The bound remains below the required 10 s stall ceiling.
Author
Owner

Committed the investigation table as d972079d. It records five baseline failures and two >10 s stalls in both contexts, the strict-mode root cause, process-context measurements, the path-override mistake, and the final ten-run evidence. Current-source plain combined command passes 18 unit plus 2 integration tests in 8.397 s; the weighted-scope final series passed 10/10 in 7.877–9.384 s. Starting scripts/verify fast on branch head d972079d.

Committed the investigation table as `d972079d`. It records five baseline failures and two >10 s stalls in both contexts, the strict-mode root cause, process-context measurements, the path-override mistake, and the final ten-run evidence. Current-source plain combined command passes 18 unit plus 2 integration tests in 8.397 s; the weighted-scope final series passed 10/10 in 7.877–9.384 s. Starting `scripts/verify fast` on branch head `d972079d`.
Author
Owner

The first scripts/verify fast on d972079d completed with the restart/unit tests and Clippy passing, but tests/agent_daemon.rs::real_binary_preserves_input_and_output_across_24_abrupt_stops failed idle < 15 * 1024 in scripts/verify-agent.py:34. Cargo-deny passed. The x86_64 static binary measured 21,315,280 bytes against the 16,404,816-byte ceiling (baseline 16,142,672 + 262,144 allowance). I am isolating the unrelated RSS assertion and will rerun the full gate.

The first `scripts/verify fast` on `d972079d` completed with the restart/unit tests and Clippy passing, but `tests/agent_daemon.rs::real_binary_preserves_input_and_output_across_24_abrupt_stops` failed `idle < 15 * 1024` in `scripts/verify-agent.py:34`. Cargo-deny passed. The x86_64 static binary measured 21,315,280 bytes against the 16,404,816-byte ceiling (baseline 16,142,672 + 262,144 allowance). I am isolating the unrelated RSS assertion and will rerun the full gate.
Author
Owner

The isolated scoped rerun of the agent_daemon case passed: idle RSS 14,060 KiB (15,360 KiB limit), 0 scheduled slices over 2.201 s, and all 24 restart iterations passed in 43.95 s. I am rerunning scripts/verify fast with the warmed target; this test was not changed by #174.

The isolated scoped rerun of the `agent_daemon` case passed: idle RSS 14,060 KiB (15,360 KiB limit), 0 scheduled slices over 2.201 s, and all 24 restart iterations passed in 43.95 s. I am rerunning `scripts/verify fast` with the warmed target; this test was not changed by #174.
Author
Owner

The warmed full gate repeated the unrelated agent_daemon idle-RSS failure in both scoped and plain workspace test runs. cargo test --workspace --test agent_daemon fails at the 15 MiB assertion; the crate-only run passed once at 14,120 KiB. Direct launches sampled 15,428–15,696 KiB for 5 s. No agent or memory-budget code changed in this lane. I am making one final fast-gate attempt with the warmed target and preserving its complete output.

The warmed full gate repeated the unrelated `agent_daemon` idle-RSS failure in both scoped and plain workspace test runs. `cargo test --workspace --test agent_daemon` fails at the 15 MiB assertion; the crate-only run passed once at 14,120 KiB. Direct launches sampled 15,428–15,696 KiB for 5 s. No agent or memory-budget code changed in this lane. I am making one final fast-gate attempt with the warmed target and preserving its complete output.
Author
Owner

The next full-gate failure is a separate test fixture path bug: agent_review::initial_attach_requires_explicit_credit_before_replay creates Path('target/ac<PID>') without creating the parent. Since this job correctly sets CARGO_TARGET_DIR under the job scratch path, the worktree-local target/ is absent and the fixture fails with FileNotFoundError before its check. I will switch this fixture to the existing fixture_state() helper so it uses a private, bounded path like the other agent fixtures.

The next full-gate failure is a separate test fixture path bug: `agent_review::initial_attach_requires_explicit_credit_before_replay` creates `Path('target/ac<PID>')` without creating the parent. Since this job correctly sets `CARGO_TARGET_DIR` under the job scratch path, the worktree-local `target/` is absent and the fixture fails with `FileNotFoundError` before its check. I will switch this fixture to the existing `fixture_state()` helper so it uses a private, bounded path like the other agent fixtures.
Author
Owner

Completed the final-gate fixture follow-up. Commit dcf89dee fixes scripts/verify-agent-attach-credit.py to use fixture_state('ac') instead of target/ac; with no worktree target directory, its exact weighted-scope integration test passed (1 passed, 2.95s). Commit 7fc6f6ee records the cause and evidence in docs/verification/restart-tests-174.md. Restart suite 10-run and full branch-head gate are next.

Completed the final-gate fixture follow-up. Commit dcf89dee fixes scripts/verify-agent-attach-credit.py to use fixture_state('ac') instead of target/ac<PID>; with no worktree target directory, its exact weighted-scope integration test passed (1 passed, 2.95s). Commit 7fc6f6ee records the cause and evidence in docs/verification/restart-tests-174.md. Restart suite 10-run and full branch-head gate are next.
Author
Owner

Final branch-head repeatability passed 10/10 consecutive weighted-scope runs of cargo test -p infraternal restart; each passed 18 unit and 2 integration tests. Wall times were 8.460–9.522s; one-minute load averages ranged 17.49–32.47. The table was updated in docs commit 4150613a. Running the final full gate on this head now.

Final branch-head repeatability passed 10/10 consecutive weighted-scope runs of `cargo test -p infraternal restart`; each passed 18 unit and 2 integration tests. Wall times were 8.460–9.522s; one-minute load averages ranged 17.49–32.47. The table was updated in docs commit 4150613a. Running the final full gate on this head now.
Author
Owner

A branch-head scripts/verify fast run passed the 64 unit tests, agent daemon, queues, and all 8 agent review tests, then failed agent_sessions::detached_shim_is_discovered_and_replays_from_the_last_observed_offset at crates/infraternal/tests/agent_sessions.rs:70 with ENOENT. Reproduced in isolation under the required scratch CARGO_TARGET_DIR: 0/1 passed in 0.01s. The test hard-codes ../../target/ar<PID> and its parent is absent when Cargo artifacts are outside the worktree. I’m replacing that build-directory-dependent fixture path with a bounded private per-user state path, then will rerun the targeted test and full gate.

A branch-head `scripts/verify fast` run passed the 64 unit tests, agent daemon, queues, and all 8 agent review tests, then failed `agent_sessions::detached_shim_is_discovered_and_replays_from_the_last_observed_offset` at `crates/infraternal/tests/agent_sessions.rs:70` with ENOENT. Reproduced in isolation under the required scratch `CARGO_TARGET_DIR`: 0/1 passed in 0.01s. The test hard-codes `../../target/ar<PID>` and its parent is absent when Cargo artifacts are outside the worktree. I’m replacing that build-directory-dependent fixture path with a bounded private per-user state path, then will rerun the targeted test and full gate.
Author
Owner

Fixed the scratch-target gate failure and recorded it. Commit e1bf4208 changes the detached session integration test from ../../target/ar to private per-process state under the user cache, with a <108-byte Unix socket path check. The isolated test reproduced ENOENT before the fix (0.01s) and passed after it (1 passed, 0.04s); cargo fmt --all --check and cargo clippy --locked -p infraternal --all-targets passed. Commit 633c7fa9 records this in docs/verification/restart-tests-174.md. Repeating the restart series on this head now.

Fixed the scratch-target gate failure and recorded it. Commit e1bf4208 changes the detached session integration test from ../../target/ar<PID> to private per-process state under the user cache, with a <108-byte Unix socket path check. The isolated test reproduced ENOENT before the fix (0.01s) and passed after it (1 passed, 0.04s); cargo fmt --all --check and cargo clippy --locked -p infraternal --all-targets passed. Commit 633c7fa9 records this in docs/verification/restart-tests-174.md. Repeating the restart series on this head now.
Author
Owner

After the detached fixture change, cargo test -p infraternal restart passed 10/10 consecutive weighted-scope runs on the final code head; each passed 18 unit and 2 integration tests in 7.439–8.006s. One-minute host load averaged 11.11–13.82 at run starts. Commit df2a5cb5 records the latest measurements in the verification table. Running the final full gate on this head now.

After the detached fixture change, `cargo test -p infraternal restart` passed 10/10 consecutive weighted-scope runs on the final code head; each passed 18 unit and 2 integration tests in 7.439–8.006s. One-minute host load averaged 11.11–13.82 at run starts. Commit df2a5cb5 records the latest measurements in the verification table. Running the final full gate on this head now.
Author
Owner

Finished #174 on branch fix-restart-tests, head df2a5cb5.

Root cause: under umask 0002, Cargo's test image and copied replacement fixtures were mode 0775. The production restart validator correctly rejects group-writable executables, so fixture requests failed and restart-control tests waited for a request that could not be accepted. This is a test-fixture bug; production validation and restart behavior remain unchanged. Fixtures now use private executable copies, marked inspection-only images, explicit child stdin, bounded waits/process cleanup, and deterministic socket/unlink setup. Plain-shell and weighted-scope baselines reproduced the same five failures and two stalls; the final combined restart test command passed 10/10 consecutive weighted-scope runs (18 unit + 2 integration tests per run, 7.439–8.006s; natural one-minute load 11.11–13.82).

The full gate also exposed two integration fixtures rooted under the worktree's target/. They now use private state outside Cargo build output; the attach-credit and detached-session tests both pass with CARGO_TARGET_DIR in job scratch. Full gate unit result was 292 passed, 0 failed, 32 ignored; integration tests passed.

Final scripts/verify fast output (verbatim):

==> static builds
    Finished `release` profile [optimized] target(s) in 1.65s
/home/kayg/.cache/codex-scratch/fix-restart-tests/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped
PT_INTERP: absent; size: 21315280 bytes (baseline 16142672 + allowance 262144 = max 16404816)
binary exceeds the 16404816-byte size budget: 21315280 bytes

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| CLI plugin compile-out    | PASS         |
| clippy                    | PASS         |
| test                      | PASS         |
| cargo-deny                | PASS         |
| static builds             | FAIL (1)     |
+---------------------------+--------------+
Finished #174 on branch `fix-restart-tests`, head `df2a5cb5`. Root cause: under umask 0002, Cargo's test image and copied replacement fixtures were mode 0775. The production restart validator correctly rejects group-writable executables, so fixture requests failed and restart-control tests waited for a request that could not be accepted. This is a test-fixture bug; production validation and restart behavior remain unchanged. Fixtures now use private executable copies, marked inspection-only images, explicit child stdin, bounded waits/process cleanup, and deterministic socket/unlink setup. Plain-shell and weighted-scope baselines reproduced the same five failures and two stalls; the final combined restart test command passed 10/10 consecutive weighted-scope runs (18 unit + 2 integration tests per run, 7.439–8.006s; natural one-minute load 11.11–13.82). The full gate also exposed two integration fixtures rooted under the worktree's `target/`. They now use private state outside Cargo build output; the attach-credit and detached-session tests both pass with `CARGO_TARGET_DIR` in job scratch. Full gate unit result was 292 passed, 0 failed, 32 ignored; integration tests passed. Final `scripts/verify fast` output (verbatim): ```text ==> static builds Finished `release` profile [optimized] target(s) in 1.65s /home/kayg/.cache/codex-scratch/fix-restart-tests/target/x86_64-unknown-linux-musl/release/infraternal: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), static-pie linked, stripped PT_INTERP: absent; size: 21315280 bytes (baseline 16142672 + allowance 262144 = max 16404816) binary exceeds the 16404816-byte size budget: 21315280 bytes +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | test | PASS | | cargo-deny | PASS | | static builds | FAIL (1) | +---------------------------+--------------+ ```
Author
Owner

Production-batch restart fallback started on release-prod-4 at69babc9237457a8dd30a20ba596c730b44414e79, with ended-sessions14d01feb staged. Read all #174 comments; no parent linked. Unmodified restart::tests probe reproduces cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null FAILED and two>60s stalls (closed_reply/default_restart); owned120s guard returns124. Harness mode0775 under inherited umask0002, matching #174's strict validator fixture defect. evidence/prod4/restart-before.log preserves output. After the second merge, port only4fcba8a6 and e1749321 as separate logical test commits; existing #174 attach-credit/discovery state fixes are already present through terminal-fidelity. No unrelated dev history or production restart change.

Production-batch restart fallback started on release-prod-4 at69babc9237457a8dd30a20ba596c730b44414e79, with ended-sessions14d01feb staged. Read all #174 comments; no parent linked. Unmodified restart::tests probe reproduces cold_exec_with_closed_stdin_keeps_the_image_pinned_and_maps_null FAILED and two>60s stalls (closed_reply/default_restart); owned120s guard returns124. Harness mode0775 under inherited umask0002, matching #174's strict validator fixture defect. evidence/prod4/restart-before.log preserves output. After the second merge, port only4fcba8a6 and e1749321 as separate logical test commits; existing #174 attach-credit/discovery state fixes are already present through terminal-fidelity. No unrelated dev history or production restart change.
Author
Owner

Completed second merge494388821526f8be674eb24a43dab5f955cf28f9. Full default server replay192PASS/0FAIL/15ignored(490.99s), including both previously intermittent auth cases; raw failures retained, no waiver. Agent42+transport2, shim73+detach2/mouse1/pidfd2, queue1/review8, real-session3 and idle-exit1 pass.
Separate follow-ups:4a4ead30 ports reviewed private restart fixtures; e0fb30a9 ports bounded9s exec deadline; each fmt/CLI all-target/all-feature clippy PASS and16/16 restart tests PASS(7.36s/7.34s). c5dc93b0 reuses parent-creating state root: red ENOENT preserved, green3/3/16survivors discovered6ms.
Additional #160 queued-live-query finding repaired in8ab20914, regression/setup coverage38a09ea8. Before: full live suffix received/painted,0 reply bytes for15s. After: all3 production-renderer regressions PASS(56.8s), including exact fence; tracer159PASS/0FAIL/10958 assertions/check/build/transfer PASS. Critical gzip293817/Brotli244107B; deferred49717/43905B. No engine/wire/timer change. First attempted green run hit another job's backend port5355; fresh16404/16405 run is valid.
Code head38a09ea879d64145e8f4ed69213b0c6af7013df0. Rebuilding final x86/ARM images, remote-feature tests and full final browser replay underway; native interleaved perf-VM comparison and final fast gate remain. No deployment.

Completed second merge494388821526f8be674eb24a43dab5f955cf28f9. Full default server replay192PASS/0FAIL/15ignored(490.99s), including both previously intermittent auth cases; raw failures retained, no waiver. Agent42+transport2, shim73+detach2/mouse1/pidfd2, queue1/review8, real-session3 and idle-exit1 pass. Separate follow-ups:4a4ead30 ports reviewed private restart fixtures; e0fb30a9 ports bounded9s exec deadline; each fmt/CLI all-target/all-feature clippy PASS and16/16 restart tests PASS(7.36s/7.34s). c5dc93b0 reuses parent-creating state root: red ENOENT preserved, green3/3/16survivors discovered6ms. Additional #160 queued-live-query finding repaired in8ab20914, regression/setup coverage38a09ea8. Before: full live suffix received/painted,0 reply bytes for15s. After: all3 production-renderer regressions PASS(56.8s), including exact fence; tracer159PASS/0FAIL/10958 assertions/check/build/transfer PASS. Critical gzip293817/Brotli244107B; deferred49717/43905B. No engine/wire/timer change. First attempted green run hit another job's backend port5355; fresh16404/16405 run is valid. Code head38a09ea879d64145e8f4ed69213b0c6af7013df0. Rebuilding final x86/ARM images, remote-feature tests and full final browser replay underway; native interleaved perf-VM comparison and final fast gate remain. No deployment.
Author
Owner

Start: branch gate-flakes, base fe047e2d3b55dfb752131bc188a902aa6b776387 (origin/dev). Read all #174 comments and the linked #207 history. Checking whether any restart flakes remain on current origin/dev; will preserve the prior fixture findings and report fresh evidence here.

Start: branch `gate-flakes`, base `fe047e2d3b55dfb752131bc188a902aa6b776387` (`origin/dev`). Read all #174 comments and the linked #207 history. Checking whether any restart flakes remain on current `origin/dev`; will preserve the prior fixture findings and report fresh evidence here.
Author
Owner

Blocked on shared capacity: all four build slots are occupied by active gates/builds, and free disk is 55 GB, below the 60 GB guard. This worktree has no target artifacts. Needed before the requested prebuild and tests can start: one shared build slot and restored disk headroom. No load generator or test has started.

Blocked on shared capacity: all four build slots are occupied by active gates/builds, and free disk is 55 GB, below the 60 GB guard. This worktree has no target artifacts. Needed before the requested prebuild and tests can start: one shared build slot and restored disk headroom. No load generator or test has started.
Author
Owner

Capacity update: free disk has fallen to 41 GB (below the 60 GB guard) while all four build slots remain occupied. This job still has no target artifacts; its scratch directory is 8 KB. Needed: disk guard reclamation to restore at least 60 GB and one shared build slot. No test or synthetic load has started.

Capacity update: free disk has fallen to 41 GB (below the 60 GB guard) while all four build slots remain occupied. This job still has no target artifacts; its scratch directory is 8 KB. Needed: disk guard reclamation to restore at least 60 GB and one shared build slot. No test or synthetic load has started.
Author
Owner

Step complete at HEAD fe047e2d3b55dfb752131bc188a902aa6b776387: the restart-enabled infraternal binary test target and current server test binary compiled with CARGO_TARGET_DIR in this job's external scratch. No source changes; restart baseline execution is queued for a build slot. Evidence: prebuild.log.

Step complete at HEAD `fe047e2d3b55dfb752131bc188a902aa6b776387`: the restart-enabled `infraternal` binary test target and current server test binary compiled with `CARGO_TARGET_DIR` in this job's external scratch. No source changes; restart baseline execution is queued for a build slot. Evidence: [prebuild.log](https://git.kayg.org/attachments/235218ae-ee60-4388-a3d9-e84ed64528d8).
Author
Owner

Capacity update at 2026-10-21 00:17 CEST: all three normal build slots are occupied by other gate/build jobs; 116 GB is free. The corrected no-synthetic auth::tests::socket_tests baseline is queued. Natural 1-minute load is 38.14; no synthetic workers are running. Needed: a shared build slot and natural load below the observed 12-core failure range before synthetic repetitions. No source changes.

Capacity update at 2026-10-21 00:17 CEST: all three normal build slots are occupied by other gate/build jobs; 116 GB is free. The corrected no-synthetic `auth::tests::socket_tests` baseline is queued. Natural 1-minute load is 38.14; no synthetic workers are running. Needed: a shared build slot and natural load below the observed 12-core failure range before synthetic repetitions. No source changes.
Author
Owner

Baseline update: no synthetic workers ran. At the suite start, host load was 11.10 / 13.92 / 14.70 (1/5/15 min). Results: SSH askpass 2 passed (1 ignored); rootless daemon 1 passed with all 24 abrupt-stop iterations; restart 28 unit tests and 2 matching integration tests passed; review3 13 passed (1 ignored); authority watchdog 6 passed; SSH install 93 passed (2 ignored); SSH inode reuse 1 passed.

Matrix correction: the first auth filter selected 0 tests. The corrected server-only invocation without remote ran 48 passed, 2 failed, 4 ignored in 153.31s. Both failures expected mesh unavailable but got plugin unavailable; this invocation omitted remote, which is enabled through the workspace's infraternal defaults. This is a feature-selection mismatch, not a load result. The bootstrap selector also selected 0 tests and is excluded. Evidence: baseline.log, baseline-auth-socket.log.

Blocked: the matching --features remote baseline is queued, but free space fell to 57 GB and all normal build slots are occupied. Its queued command was stopped before it acquired a slot to avoid compiling below the 60 GB disk guard. No source changes; no synthetic workers are active. Needed: one normal slot and at least 60 GB free for the matching baseline, then the five loaded repetitions.

Baseline update: no synthetic workers ran. At the suite start, host load was 11.10 / 13.92 / 14.70 (1/5/15 min). Results: SSH askpass 2 passed (1 ignored); rootless daemon 1 passed with all 24 abrupt-stop iterations; restart 28 unit tests and 2 matching integration tests passed; review3 13 passed (1 ignored); authority watchdog 6 passed; SSH install 93 passed (2 ignored); SSH inode reuse 1 passed. Matrix correction: the first auth filter selected 0 tests. The corrected server-only invocation without `remote` ran 48 passed, 2 failed, 4 ignored in 153.31s. Both failures expected `mesh unavailable` but got `plugin unavailable`; this invocation omitted `remote`, which is enabled through the workspace's `infraternal` defaults. This is a feature-selection mismatch, not a load result. The bootstrap selector also selected 0 tests and is excluded. Evidence: [baseline.log](https://git.kayg.org/attachments/431a93d9-c0e8-44e9-ac3c-9db4c3728bbe), [baseline-auth-socket.log](https://git.kayg.org/attachments/ec6256b6-b8e4-4495-bed4-5af2796878f8). Blocked: the matching `--features remote` baseline is queued, but free space fell to 57 GB and all normal build slots are occupied. Its queued command was stopped before it acquired a slot to avoid compiling below the 60 GB disk guard. No source changes; no synthetic workers are active. Needed: one normal slot and at least 60 GB free for the matching baseline, then the five loaded repetitions.
Author
Owner

Capacity update at 2026-10-21 00:47 CEST: all three normal build slots are occupied by active gate/build jobs and free disk is 51 GB. The workspace-feature-matched auth baseline remains stopped before compilation because free space is below the 60 GB guard. Natural load is 14.81 / 16.25 / 17.87 (1/5/15 min); no synthetic workers are running. Needed: at least 60 GB free and one normal build slot. No source changes.

Capacity update at 2026-10-21 00:47 CEST: all three normal build slots are occupied by active gate/build jobs and free disk is 51 GB. The workspace-feature-matched auth baseline remains stopped before compilation because free space is below the 60 GB guard. Natural load is 14.81 / 16.25 / 17.87 (1/5/15 min); no synthetic workers are running. Needed: at least 60 GB free and one normal build slot. No source changes.
Author
Owner

Capacity update at 2026-10-21 00:49 CEST: free disk fell from 51 GB to 45 GB while all three normal build slots remain occupied. The workspace-feature-matched auth baseline is stopped before compilation; loaded repetitions have not started. Natural load is 21.72 / 18.33 / 18.49 (1/5/15 min). Needed: disk guard reclamation to at least 60 GB plus one normal slot. No source changes or synthetic workers.

Capacity update at 2026-10-21 00:49 CEST: free disk fell from 51 GB to 45 GB while all three normal build slots remain occupied. The workspace-feature-matched auth baseline is stopped before compilation; loaded repetitions have not started. Natural load is 21.72 / 18.33 / 18.49 (1/5/15 min). Needed: disk guard reclamation to at least 60 GB plus one normal slot. No source changes or synthetic workers.
Author
Owner

Capacity update at 2026-10-21 00:58 CEST: free disk is 41 GB. All three normal slots are occupied by two scripts/verify fast jobs and a remote server release compile. The feature-matched auth baseline remains paused before compilation; loaded repetitions have not started. Natural load is 16.77 / 11.47 / 14.55 (1/5/15 min). Needed: disk guard reclamation to at least 60 GB and one normal build slot. No source changes or synthetic workers.

Capacity update at 2026-10-21 00:58 CEST: free disk is 41 GB. All three normal slots are occupied by two `scripts/verify fast` jobs and a remote server release compile. The feature-matched auth baseline remains paused before compilation; loaded repetitions have not started. Natural load is 16.77 / 11.47 / 14.55 (1/5/15 min). Needed: disk guard reclamation to at least 60 GB and one normal build slot. No source changes or synthetic workers.
Author
Owner

Capacity update at 2026-10-21 01:02 CEST: free disk has fallen to 38 GB; all three normal slots remain occupied by active checks/builds. The feature-matched auth baseline and loaded repetitions remain stopped before compilation. Natural load is 25.44 / 19.67 / 17.26 (1/5/15 min); no synthetic workers are running. Needed: disk guard reclamation to at least 60 GB and a normal build slot. No source changes.

Capacity update at 2026-10-21 01:02 CEST: free disk has fallen to 38 GB; all three normal slots remain occupied by active checks/builds. The feature-matched auth baseline and loaded repetitions remain stopped before compilation. Natural load is 25.44 / 19.67 / 17.26 (1/5/15 min); no synthetic workers are running. Needed: disk guard reclamation to at least 60 GB and a normal build slot. No source changes.
Author
Owner

Capacity update at 2026-10-21 01:17 CEST: the remote-enabled auth baseline has been queued since 00:31 without acquiring a normal slot; all three normal slots are occupied by active gates/builds. Disk has recovered to 115 GB. Natural load is 34.08 / 23.80 / 19.99 (1/5/15 min), so synthetic runs remain deferred. Needed: one normal slot for the baseline, then a natural load below 30 for the loaded repetitions. No source changes or synthetic workers.

Capacity update at 2026-10-21 01:17 CEST: the remote-enabled auth baseline has been queued since 00:31 without acquiring a normal slot; all three normal slots are occupied by active gates/builds. Disk has recovered to 115 GB. Natural load is 34.08 / 23.80 / 19.99 (1/5/15 min), so synthetic runs remain deferred. Needed: one normal slot for the baseline, then a natural load below 30 for the loaded repetitions. No source changes or synthetic workers.
Author
Owner

Step complete: workspace-feature-matched auth socket baseline passed with no synthetic load. --features remote selected 57 tests: 57 passed, 0 failed, 4 ignored, in 117.95s. Both session_gone cases and all five transient_authority_stall cases passed. Host load at start was about 5.8 / 17.3 / 19.5 (1/5/15 min). The earlier package-only run without remote had two expected-message mismatches; this corrected run matches workspace feature unification. Evidence: baseline-auth-socket-remote.log.

Next: run the review3 baseline with remote, then begin five bounded loaded repetitions when natural load permits. No source changes.

Step complete: workspace-feature-matched auth socket baseline passed with no synthetic load. `--features remote` selected 57 tests: 57 passed, 0 failed, 4 ignored, in 117.95s. Both `session_gone` cases and all five `transient_authority_stall` cases passed. Host load at start was about 5.8 / 17.3 / 19.5 (1/5/15 min). The earlier package-only run without `remote` had two expected-message mismatches; this corrected run matches workspace feature unification. Evidence: [baseline-auth-socket-remote.log](https://git.kayg.org/attachments/63dcb3a6-b58e-4599-b2f6-ab0b3d93168e). Next: run the review3 baseline with `remote`, then begin five bounded loaded repetitions when natural load permits. No source changes.
Author
Owner

Step complete: the workspace-feature-matched review3 baseline passed with no synthetic load: 13 passed, 0 failed, 1 ignored in 13.60s (--features remote). Host load near test start was about 9 / 12.5 / 17 (1/5/15 min). Evidence: baseline-review3-remote.log.

The auth socket and review3 no-synthetic baselines are complete. Next is five loaded repetitions of the targeted flake suites; natural load is currently below 30, and no synthetic workers are active. No source changes.

Step complete: the workspace-feature-matched review3 baseline passed with no synthetic load: 13 passed, 0 failed, 1 ignored in 13.60s (`--features remote`). Host load near test start was about 9 / 12.5 / 17 (1/5/15 min). Evidence: [baseline-review3-remote.log](https://git.kayg.org/attachments/c83e589e-4c69-40a9-aff8-30b8226dc1ef). The auth socket and review3 no-synthetic baselines are complete. Next is five loaded repetitions of the targeted flake suites; natural load is currently below 30, and no synthetic workers are active. No source changes.
Author
Owner

Loaded reproducer complete on gate-flakes at base fe047e2d3b55dfb752131bc188a902aa6b776387: five rounds across ten targeted cases, 50/50 suite executions exit 0 and zero test failures. The rootless real-binary test passed 120 abrupt stop/restart iterations total. restart::tests:: passed 18/18 per run with CARGO_TARGET_DIR unset. All five runs passed for the auth socket, review3, watchdog, askpass, SSH install and inode-reuse cases. Per-case counts and full logs are attached.

No load-only failure reproduced and no test or product code changed. Next: loaded Clippy check and final gate.

Loaded reproducer complete on `gate-flakes` at base `fe047e2d3b55dfb752131bc188a902aa6b776387`: five rounds across ten targeted cases, 50/50 suite executions exit 0 and zero test failures. The rootless real-binary test passed 120 abrupt stop/restart iterations total. `restart::tests::` passed 18/18 per run with `CARGO_TARGET_DIR` unset. All five runs passed for the auth socket, review3, watchdog, askpass, SSH install and inode-reuse cases. Per-case counts and full logs are attached. No load-only failure reproduced and no test or product code changed. Next: loaded Clippy check and final gate.
Author
Owner

Loaded workspace Clippy completed successfully: cargo clippy --workspace --all-targets --locked -- -D warnings exited 0. It compiled the OpenSSL crates in the same scoped unit as four CPU workers across two bounded bursts, with no header error. Full output is attached. No load-only failure reproduced; final scripts/verify fast is next.

Loaded workspace Clippy completed successfully: `cargo clippy --workspace --all-targets --locked -- -D warnings` exited 0. It compiled the OpenSSL crates in the same scoped unit as four CPU workers across two bounded bursts, with no header error. Full output is attached. No load-only failure reproduced; final `scripts/verify fast` is next.
Author
Owner

Final fast gate finding: cargo-deny reports RUSTSEC-2026-0382 for locked rustls-webpki 0.103.15 via rustls 0.23.46; advisories failed while bans, licenses, and sources passed. This is the known advisory row being patched by another job. Static builds are still running.

Final fast gate finding: `cargo-deny` reports `RUSTSEC-2026-0382` for locked `rustls-webpki 0.103.15` via `rustls 0.23.46`; advisories failed while bans, licenses, and sources passed. This is the known advisory row being patched by another job. Static builds are still running.
Author
Owner

Static x86_64 leg passed: stripped static PIE, no PT_INTERP, 21,385,264 bytes; cap 21,385,264; delta +0 bytes. HEAD is identical to merge base fe047e2d3b55dfb752131bc188a902aa6b776387; branch-to-base size delta is 0. Aarch64 and the final gate summary are still running.

Static x86_64 leg passed: stripped static PIE, no `PT_INTERP`, 21,385,264 bytes; cap 21,385,264; delta +0 bytes. `HEAD` is identical to merge base `fe047e2d3b55dfb752131bc188a902aa6b776387`; branch-to-base size delta is 0. Aarch64 and the final gate summary are still running.
Author
Owner

Finished on branch gate-flakes, HEAD fe047e2d3b55dfb752131bc188a902aa6b776387 (same as merge base origin/dev). No test fix was needed: all 10 selected cases passed in 5/5 loaded runs (50/50 invocations, zero test failures); loaded Clippy passed without the OpenSSL header race. The rootless daemon test completed 24 abrupt-stop iterations per invocation (120 total). Counts and raw receipts: loaded-counts.md, loaded-trials.log, loaded-clippy.log.

scripts/verify fast returned exit 1 solely for the known RUSTSEC-2026-0382 advisory in rustls-webpki 0.103.15; all other gate rows passed. Static stripped sizes equal the caps: x86_64 21,385,264 bytes (+0 from merge base), aarch64 19,570,256 bytes (+0). Full gate log: verify-fast.log.

Final gate table (verbatim):
+---------------------------+--------------+
| Rust gate | Result |
+---------------------------+--------------+
| fmt | PASS |
| VT native fmt | PASS |
| CLI plugin compile-out | PASS |
| clippy | PASS |
| SSH runtime test helper | PASS |
| test | PASS |
| SSH inode reuse fixture | PASS |
| shim process-per-user | PASS |
| cargo-deny | FAIL (1) |
| static builds | PASS |
+---------------------------+--------------+

Finished on branch `gate-flakes`, HEAD `fe047e2d3b55dfb752131bc188a902aa6b776387` (same as merge base `origin/dev`). No test fix was needed: all 10 selected cases passed in 5/5 loaded runs (50/50 invocations, zero test failures); loaded Clippy passed without the OpenSSL header race. The rootless daemon test completed 24 abrupt-stop iterations per invocation (120 total). Counts and raw receipts: [loaded-counts.md](https://git.kayg.org/attachments/8ce5d462-0931-4fc9-a92f-67f5a3967b49), [loaded-trials.log](https://git.kayg.org/attachments/720cfe76-54d7-415f-8af6-2d1483d7a743), [loaded-clippy.log](https://git.kayg.org/attachments/2110b970-cbfe-412d-a6e7-62c3576a0814). `scripts/verify fast` returned exit 1 solely for the known `RUSTSEC-2026-0382` advisory in `rustls-webpki 0.103.15`; all other gate rows passed. Static stripped sizes equal the caps: x86_64 21,385,264 bytes (+0 from merge base), aarch64 19,570,256 bytes (+0). Full gate log: [verify-fast.log](https://git.kayg.org/attachments/5cea9e07-a7c5-4a05-816a-4cda62563b8c). Final gate table (verbatim): +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | SSH runtime test helper | PASS | | test | PASS | | SSH inode reuse fixture | PASS | | shim process-per-user | PASS | | cargo-deny | FAIL (1) | | static builds | PASS | +---------------------------+--------------+
Author
Owner

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Restart tests fixed and merged as cc3297508 (fix-restart-tests, #174) in dev; gate-flakes confirmed 50/50 loaded passes. Reopen if anything is still missing.

Closed by the orchestrator during the 2026-10-28 handover (#254), on the owner's request to close finished issues. Evidence: Restart tests fixed and merged as cc3297508 (fix-restart-tests, #174) in dev; gate-flakes confirmed 50/50 loaded passes. Reopen if anything is still missing.
kayg closed this issue 2026-10-28 17:53:03 +00:00
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#174
No description provided.