Skip to content

Stop rolling-restart test probes after an assertion failure #3362

Open

Description

@kylebernhardy

The rolling-restart integration test can keep opening HTTP connections after an assertion has already failed, preventing its test process and the full runner from exiting.

Observed during qualification of Fill full-text and autocomplete pages using Harper's existing paging on macOS with Node 24.16.0. The warm-up assertion reported EADDRNOTAVAIL for 5,898 probes before any restart operation. The test process then continued at about one CPU core for more than six minutes and had to be terminated to let the full integration runner finish. The address-allocation failure is the observed trigger; its underlying cause is not classified here.

The cleanup defect is visible in rolling-restart.test.ts: six loops run while probing is true, but that flag is cleared only near the end of the success path. Either warm-up assertion can throw first. Test timeout or another assertion has the same missing cleanup path. This file is unchanged by the full-text paging PR.

Move loop cancellation and draining into finally, covering every assertion and timeout after the probes start. Preserve the original assertion failure rather than letting background work keep the process alive.

Acceptance:

  • A deliberately failed warm-up ends all probe loops and the test process exits.
  • Failures after restart begins also stop the loops.
  • Successful runs retain the existing connection-availability assertions.

Tracking: contained test-harness Bug, P2, Low effort. No release is committed. No matching test-infrastructure parent was found in the initial search. No customer or security impact was observed.

Comment generated by kAIle (GPT-6)

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

    No labels
    No labels

    Type

    Fields

    Priority

    P2

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions