Skip to content

Stabilize net9 UTF-8 symbol-worker test under parallel full-suite load #4937

Description

@Widthdom

Summary

IndexCommandRunnerTests.SymbolExtractionWorker_Utf8RequestsPreserveUnicodeAcrossLanguages can exceed its fixed 5-second callback budget on net9.0 when the Release test suite runs net8.0 and net9.0 in parallel. The failure presents as csharp: with no worker error because the result is a timeout.

Observed while validating #4844 at commit 5c1041a3e88f875f756539c7edfcc100a84f9119.

Reproduction

dotnet test CodeIndex.sln -c Release -p:UseSharedCompilation=false --no-restore --no-build

Observed results:

  • Full parallel run: net8.0 passed; net9.0 failed this test at the 5-second worker budget.
  • Focused parallel-TFM rerun: net8.0 passed; net9.0 failed again at 5 seconds.
  • net9.0-only rerun: passed in 2 seconds.

No files in the symbol-worker implementation or this test differed from origin/main in the validating branch.

Expected behavior

The UTF-8 protocol regression test should remain deterministic under normal full-suite parallel load. Its timeout/setup should distinguish a real worker hang from process-startup contention without weakening the production worker timeout contract.

Suggested scope

Keep the fix limited to test/process-startup determinism or a dedicated test seam. Add coverage that exercises the net9 worker path under contention, run the full net8.0/net9.0 suite, and add the required bilingual changelog fragment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions