Skip to content

test: the nestedpidnskill control is load-dependent, and the comment said otherwise - #570

Merged
vyskocilm merged 1 commit into
mainfrom
test/nestedpidnskill-load-sensitivity
Sep 10, 2026
Merged

vyskocilm merged 1 commit into
mainfrom
test/nestedpidnskill-load-sensitivity

Conversation

@vyskocilm

Copy link
Copy Markdown
Contributor

Comment-only correction to what #568 merged.

What was wrong

The comment says the reverted build leaks "6/6 every single run" across "3 quiet runs and 3 fork-storm-loaded runs each". Loaded half is false.

Corrected in place, not deleted — the shape recurs: a control measured under one set of conditions, written down as though it held under all of them.

Re-measurement

Reverted build = flat pre-#101 topology: exec.go execs bwrap directly, no CLONE_NEWPID, no __inpidns. Dropping CLONE_NEWPID alone does NOT build a working snug — the verb refuses with this process is pid N, not pid 1 — so a reader reproducing this reverts both halves. That detail was not in the tree anywhere.

quiet, load ~1        reverted build FAILS 6/6, both assertions
loaded, load 8-10     reverted build PASSES 4/4 runs

Defect still reachable under that load: bash-paced poll of the same predicate, trigger at 0.39s, leaks 5/5 at every extra delay 0-100ms. So what moves is where the poll lands relative to the window, not whether the window exists.

Offset sweep, reverted build, quiet host, 5 trials a point:

0.04 0.06 0.08 -> 0/5   0.10 0.12 0.15 -> 5/5   0.20 0.25 -> 0/5

Window ~100-150ms quiet, opens LATER under load; the poll (cheap /proc reads) fires at roughly the same place either way.

What the test actually guarantees

Narrower than "catches the regression", and the comment now says so: never fails falsely — what the fixed offset could not manage — and catches issue #13's residual returning on a host that is not busy. CI is such a host; a workstation under a fork storm is not.

Comment also says not to answer this with a sleep: no constant lands in this window on every host, which is why the poll replaced one.

Verification

Comment only, no behaviour change. TestSIGKILLBeforeThePayloadStartsLeavesNoInit passes on this host (6.412s, load 0.49). make gate green.

🤖 Generated with Claude Code

…said otherwise

The comment merged with #568 claimed the reverted build leaks "6/6 every
single run" across "3 quiet runs and 3 fork-storm-loaded runs each". The
loaded half is false. Corrected in place rather than deleted: the shape
recurs — a control measured under one set of conditions, written down as
though it held under all of them.

Re-measured against the same reverted build, which is the flat pre-#101
topology: exec.go execs bwrap directly, no CLONE_NEWPID and no __inpidns.
Dropping CLONE_NEWPID alone does not build a working snug — the verb
refuses with "this process is pid N, not pid 1" — so a reader reproducing
this has to revert both halves.

    quiet, load ~1        reverted build FAILS 6/6, both assertions
    loaded, load 8-10     reverted build PASSES 4/4 runs

The defect is still reachable under that load: a bash-paced poll of the
same predicate, trigger at 0.39s, leaks 5/5 at every extra delay from 0 to
100ms. What moves is where the poll lands relative to the window, not
whether the window exists. Offset sweep of the reverted build, quiet host,
5 trials a point:

    0.04 0.06 0.08 -> 0/5   0.10 0.12 0.15 -> 5/5   0.20 0.25 -> 0/5

So the window is ~100-150ms quiet and opens LATER under load while the
poll — cheap /proc reads — fires at roughly the same place.

What the test guarantees is therefore narrower than "it catches the
regression", and the comment now says so: it never FAILS falsely, which is
what the fixed offset could not manage, and it catches issue #13's
residual returning on a host that is not busy. CI is such a host. The
comment also says not to answer this with a sleep: no constant lands in
this window on every host, which is why the poll replaced one.

Comment only, no behaviour change. Test still passes on this host (6.412s,
load 0.49); make gate green.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vyskocilm
vyskocilm merged commit 23c5ebb into main Sep 10, 2026
5 checks passed
@vyskocilm
vyskocilm deleted the test/nestedpidnskill-load-sensitivity branch September 10, 2026 21:21
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