Skip to content

Eliminate surviving Nightly mutants #1893

Description

@gaborbernat

Problem

Nightly run 33251376747 reported 152 missed mutants in complete artifacts from shards 1, 3, 4, 18, 23, 24, 26, and 30. At current main 08f729b9, 149 mutation source lines remain byte-identical. Three sites were retired by subsequent production changes: the old fallback condition in rate_limit::enforce and two body-limit arithmetic expressions replaced by route descriptors.

Shards 2 and 9 lost their runners with mutation steps still marked in progress and produced no logs or artifacts. Shard 19 was canceled and uploaded nothing. Shards 25 and 27 received explicit runner shutdown signals after logging 12 and 9 missed mutants, respectively; all 21 logged source lines remain on current main, but neither log is a complete shard inventory. Runner loss explains missing reports, not the mutants that completed and survived tests.

Work groups

  • Config validation and resolution: 12 complete-report sites.
  • Operator restore, snapshot, and verification: 7 complete-report sites.
  • Archive limits and member handling: 14 complete-report sites.
  • Core path and driver boundary behavior: 13 complete-report sites.
  • Driver jobs and retention: 12 complete-report sites.
  • Driver rate limiting: 4 complete-report sites.
  • Driver serving, revocations, and state descriptions: 7 complete-report sites.
  • PyPI request support and events: 4 complete-report sites.
  • HTTP routing and non-usage handlers: 29 complete-report sites.
  • HTTP usage aggregation: 27 complete-report sites.
  • Identity, index, PQL, search, and storage: 10 complete-report sites plus 19 interrupted-log sites.
  • Plugin registry and policy: 2 interrupted-log sites.
  • Test support and upstream behavior: 10 complete-report sites.

Required changes

  • Verify only the named mutants in each group against current main before opening a child issue or changing code.
  • Add public-behavior coverage for current survivors, fix any behavior defect that inspection exposes, and remove production code only when reachability analysis proves it dead.
  • Keep test-support gaps separate from production gaps.
  • Do not add mutation exclusions, retries, skips, timeouts, filters, conditional hiding, or CI-only workarounds.

Acceptance criteria

  • Every complete-report mutant and every observed interrupted-log mutant is either caught on current main, retired with a documented code change, or closed by a focused fix.
  • Each child fix has full changed-line coverage and passes its affected test and static gates.
  • A later scheduled mutation run completes every shard and reports no missed mutants.

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 observabilitytype:bugIncorrect behavior or missing validation

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions