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

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