Twinned from https://github.com/cfsh/ninefold/issues/605 by tools/beads/import_github.py's reconcile pass.
Filed unclaimed and unlabelled from nf-dev-history-charter while gating #600 — not from that PR, which is docs plus one new test file.
tools/tests/test_nflib_proc.py::StreamAndTeeTest::test_the_parent_is_flushed_before_the_child_inherits_fd1 failed once in four consecutive ./presubmit.py --suite python runs on the Linux gating VM:
``` FAIL: test_the_parent_is_flushed_before_the_child_inherits_fd1 ⚠ #470 F6, the sharp one. AssertionError: 'PARENT-BEFORE' not found in '' : the parent's line was lost in its own buffer when the streamed child was killed ```
Evidence it is contention, not a regression:
--all runs (python lane green at 17.8s and again at 82.8s — the 4.6× spread is itself the signal).Why it matters more than an ordinary flake. This box is the studio's gating host and merge_pr.py refuses to merge on a red presubmit. A flake here doesn't just cost a re-run — it blocks a merge, and the natural read of a one-off failure is "my change broke it", which costs a session a diagnostic detour it has no reason to expect. The box has 2 cores and routinely runs two or three dev sessions at once, so contention is the normal operating condition, not an edge case.
The test asserts an ordering between a parent's buffered write and a killed child's inherited fd1 — genuinely timing-shaped. Related but distinct: #598 (a probe that fails in the sweep and passes standalone) is the same symptom class in the probe tier, and #572 / #579 cover the known Linux probe failures.
Not attempting a fix — I don't want to weaken an assertion that #470 F6 was paid for. Whoever takes it should decide between making the synchronisation explicit and marking it contention-sensitive.
None.
No comments.