Skip to content

Bug: quickfiler-pump-host-tests-load-sensitive-under-coverage #711

Description

@drmoisan
  • Work Mode: full-bug

Summary

Fourteen QuickFiler.Test pump-host and dispatcher tests time out at one minute each when the full suite is run under /EnableCodeCoverage on a loaded machine. Every one of them passes on re-run against an unchanged tree, so the failures are load-sensitive rather than a regression.

Environment

  • OS/version: Windows 11, .NET Framework 4.8.1
  • Python version: not applicable
  • Command/flags used: vstest.console.exe over all discovered *.Test.dll with /EnableCodeCoverage /InIsolation /TestCaseFilter:TestCategory!=LiveOutlook /Settings:TaskMaster.runsettings
  • Data source or fixture: QuickFiler.Test pump-host and dispatcher fixtures

Steps to Reproduce

  1. Run the full discovered test set with /EnableCodeCoverage while the machine is under concurrent load.
  2. Observe fourteen QuickFiler.Test tests fail, each after approximately one minute.
  3. Re-run the same command against a byte-identical tree with the machine idle.
  4. Observe all fourteen pass.

Expected Behavior

Unit tests must be deterministic. .claude/rules/general-unit-test.md requires determinism and prohibits real wall-clock waits, and sets a determinism retry-rate budget per tier in .claude/rules/quality-tiers.md. A test whose outcome depends on host load does not meet that bar.

Actual Behavior

The affected tests wait on a message pump or dispatcher with a wall-clock timeout. Under coverage instrumentation the instrumented code runs slower, and under concurrent load the pump does not reach its expected state inside the one-minute window, so the wait expires and the test is recorded Failed.

Logs / Screenshots

  • Attached minimal logs or snippet
  • Snippet: each failure is recorded with an elapsed time of approximately 60 seconds and a timeout message rather than an assertion-failure message. The absence of an assertion message is the discriminator between this class and a real regression.

Impact / Severity

  • Blocker
  • High
  • Medium
  • Low

Severity is High because the failures are indistinguishable from a real regression at first sight, so every affected run costs an investigation, and because a coverage-enabled CI run is exactly the configuration that triggers them.

Source

From: docs/features/potential/2026-08-31-quickfiler-pump-host-tests-load-sensitive-under-coverage.md

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

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions