Skip to content

ci: finite census waits out the exit window before refusing a new child (flaky source-home-linux) - #1263

Merged
SashaMIT merged 2 commits into
spike/agent-hostfrom
ultrafast/omp-y39-cicensus
Oct 30, 2026
Merged

SashaMIT merged 2 commits into
spike/agent-hostfrom
ultrafast/omp-y39-cicensus

Conversation

@SashaMIT

Copy link
Copy Markdown
Collaborator

Hardens a CI flake. It is not a merge blocker: source-home-linux was green at 68c0116, at 995618d and on #1238's rerun.

Failure: base run 41052807996 at cf24ae3 and #1256 run 41059901772: installed Runtime exited before health (census: RuntimeError: finite journey live child identity is unavailable), raised at scripts/ci-installed-journeys.py:535.

Cause: observe_once saw a new pid (retained is None) whose /proc/<pid>/exe had already gone (after exit_mm), while its flags=0 pidfd was not yet readable (whole-group exit not yet signalled). It refused on a single poll(0).

Change:

  • In that branch only, pidfd_exited(fd, timeout=250) makes one bounded poll.
  • A pidfd that turns readable is skipped. A quiet pidfd still raises exactly as before.
  • pidfd_exited refuses a non-int timeout or one outside 0..250.
  • The outside-process branch is unchanged.

Test: test_finite_census_waits_out_exit_race_and_still_refuses_a_quiet_pidfd, with subTests for a readable and a quiet pidfd.

  • Falsifier: reverting only the wait makes the test ERROR (readable) and FAIL (quiet, [(1100, 0)] != [(1100, 250)]).
  • python3 scripts/ci-release-policy-test.py: Ran 121 tests, OK.

Scope: scripts/ only, +55/-3.

Grok Bot slot driver added 2 commits October 30, 2026 21:08
…ld (flaky source-home-linux)

source-home-linux failed intermittently with 'finite journey live child
identity is unavailable' (base run 41052807996 at cf24ae3, #1256 run
41059901772). It was green at 68c0116, at 995618d and on #1238's rerun.

observe_once saw a new pid whose /proc/<pid>/exe was already gone (after
exit_mm) while its flags=0 pidfd was not yet readable (before whole-group
exit), and refused it. It now waits up to 250 ms on that pidfd, once; a pidfd
that stays quiet still refuses exactly as before.

Test: test_finite_census_waits_out_exit_race_and_still_refuses_a_quiet_pidfd
(falsifier: revert the wait -> red). ci-release-policy-test.py 121 OK.
@SashaMIT
SashaMIT marked this pull request as ready for review October 30, 2026 15:56
@SashaMIT
SashaMIT merged commit d534e8e into spike/agent-host Oct 30, 2026
18 checks passed
@SashaMIT
SashaMIT deleted the ultrafast/omp-y39-cicensus branch October 30, 2026 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant