Skip to content

Adopt a nextest release that fixes the capture leak #2160

Description

@gaborbernat

Problem

LEAK and LEAK-FAIL reports appear intermittently across this workspace's test suites. #1629 identified the cause: a race in nextest between pipe() and set_cloexec(), tracked upstream as nextest-rs/nextest#3553, which is still open.

The identification is complete and the reading is documented in contributing/ci.md. Nothing in this repository can fix it — peryx does not own the descriptor and holds nothing to close. Every proposed local remedy hides the report rather than changing what it reports: raising the timeout, excluding a test, retrying, or serialising.

So the remedy is an upgrade, and this issue exists so that upgrade is tracked rather than remembered.

Required change

Adopt a nextest release that contains the fix for nextest-rs/nextest#3553, once one exists.

At the time of filing, 0.9.143 is the newest release and does not contain it. Check the upstream issue and nextest's changelog before assuming a newer version helps — a version bump that does not include the fix is churn, and worse, it would invite the conclusion that the problem is solved when the reports continue.

When a release does contain it, bump the pinned version and confirm the reports stop. That confirmation matters: the reports are intermittent, roughly one event per few hundred spawns, so a single green run proves nothing. Run enough to be confident, and say how many.

Then remove the workaround guidance from contributing/ci.md and the corresponding rule from the lane brief, so the next person does not keep waving off a report that no longer has a benign explanation.

Acceptance criteria

  • The pinned nextest version contains the fix for 🐛 fix(runner): stop concurrent spawns inheriting capture pipes nextest-rs/nextest#3553, verified against upstream rather than assumed from the version number.
  • Enough runs to distinguish a fix from luck, with the count stated.
  • contributing/ci.md no longer tells readers to expect and ignore these reports.
  • If a LEAK still appears after the upgrade, it is treated as a new defect rather than folded back into the old explanation.

Boundary

A dependency upgrade and the documentation it obsoletes. Not a change to any test, not a timeout adjustment, and not a local workaround. If no fixed release exists yet, this issue simply waits — do not close it by working around the problem.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:ciContinuous integration and repository checksarea:testsConformance, perf tests, and observabilitypriority:P1Protocol parity or important product gaptype:testTesting, conformance, metrics, or validation coverage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions