Skip to content

Handle disappearing proc stat reads in Fleet cleanup regression - #946

Merged
seathatflowsinourveins merged 1 commit into
mainfrom
codex/ns2604-fleet-proc-race-20261009
Oct 9, 2026
Merged

seathatflowsinourveins merged 1 commit into
mainfrom
codex/ns2604-fleet-proc-race-20261009

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator

Scope

Fix the Fleet producer cleanup test's /proc/<pid>/stat race: when the descendant exits during the read, ProcessLookupError or FileNotFoundError now means it is no longer active. A small helper reads once and retains the zombie (Z) check.

  • Base commit: 3c01bdddc66896f8e36f9f21d452710808a9557e.
  • Lane: lane:foundation.
  • Owned path: tests/test_local_pages_fleet_regressions.py only.
  • One commit: 7720287b09e498874756fadf3ee2e61021b44073.

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
Both disappearance errors reproduce the old expression's failure synthetic New mocked-read regression, before the fix: exit 1, both subtests errored on main's original expression
The helper handles both errors, reads once and preserves live/zombie states synthetic New regression class: exit 0, 2 tests; R/S active and Z inactive controls
The actual producer cleanup test and existing Fleet data behavior pass local_integration Fleet regression and Fleet data modules: exit 0, 53 tests, no skips
Published artifact integrity and scope pass local_integration FULL python3 scripts/validate.py: exit 0
Native pre-push private-name/history/identity and registry gates pass local_integration Actual repository pre-push hook: source=host, 12054 files, zero matching locations; all 3 registry tests passed, no skips
Exception classes and stat state follow maintained primary sources source_review Sources above

Local commands run

$ python3 -m unittest -v tests.test_local_pages_fleet_regressions.ProcessStatRegressionTests
Before fix: exit 1; FAILED (errors=2).
After fix: exit 0; Ran 2 tests; OK.

$ python3 -m unittest -v tests.test_local_pages_fleet_regressions tests.test_local_pages_fleet_data
exit 0; Ran 53 tests in 0.659s; OK; no skips.

$ python3 scripts/validate.py
FULL, exit 0; 70 components, 11283 hashed files, 4 profiles, 239 receipts.

$ git diff --check
exit 0.

The fail-before run mechanically extracted main's exact status.exists() and status.read_text().split()[2] != 'Z' expression without changing behavior, then mocked read_text raising each disappearance error. Both subtests failed on that expression before exception handling was added. The actual cleanup assertion now uses the same helper exercised by those regressions.

The commit and native-shell push use repository hooks; no --no-verify is used. Tests ran normally, without a RAM gate, resource cap or nice wrapper. Hosted CI and the CC's Claude read remain separate acceptance gates.

Decision record

This bounded test fix follows the CC's Fleet /proc race slice. Handling disappearance at the read removes the existence/read race while retaining the existing zombie check. The helper catches only ProcessLookupError and FileNotFoundError; other read failures still surface. No separate architecture decision is introduced.

Host evidence

Not applicable: no host receipt or platform status changes.

Checklist

  • No GitHub Actions or workflow permissions changed; existing pins remain.
  • No secrets were printed, logged or committed, and no required secret was added.
  • No paid hosting, subscription or billing surface was introduced.
  • Peer-owned files and worktrees were preserved.
  • Exactly one commit; the draft remains gated on the CC's Claude head read.

@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 9, 2026
@seathatflowsinourveins
seathatflowsinourveins marked this pull request as ready for review October 9, 2026 23:07
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T23:09:50.866867Z 7720287 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@seathatflowsinourveins
seathatflowsinourveins force-pushed the codex/ns2604-fleet-proc-race-20261009 branch from 7720287 to c414dc2 Compare October 9, 2026 23:09
@seathatflowsinourveins
seathatflowsinourveins merged commit 318089f into main Oct 9, 2026
36 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the codex/ns2604-fleet-proc-race-20261009 branch October 9, 2026 23:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant