[P2] Windows interop-only System.String hover can exceed the unchanged request deadline
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp, node.js, typescript
- Domain
- backend-api-design, testing
Research direction
Start with the retained CI editor-contract artifact and scripts/test-analysis-snapshots.mjs; compare the interop-only hover request path with the successful local replay logs under artifacts/p3-checker/final-f9-ci/. If the timeout recurs, collect wire traffic, per-request server phase timings, and process stacks to determine whether metadata or diagnostics block the request or it is dispatched without a response. Done means the cause is supported by adequate evidence while preserving the existing 20-second guard and assertions.
Written by the indexing model from the issue text.
Description
Windows editor-contract CI encountered one unexplained interop-only hover timeout. The cause has not been established; no source fix or deadline change is claimed.
Observed on PR #3487 head f9d85818835fd5b341749db1e2a9d208e984f1b2, CI run 41808128148, Windows editor-contract job 126501449355. The GitHub PR merge checkout was a758523ac5d892f31bb28fb227647dc5946fe68b. Host: windows-2025, Node 22.23.2, .NET runtime 10.0.14 / SDK10.0.403.
scripts/test-analysis-snapshots.mjs completed its full-language phase, then created a fresh --language-features interop-only server. Initialize succeeded. It sent didOpen for:
@DotNetType("System.String")
declare class NetString {}
The immediately following textDocument/hover at line0, character4 reached the unchanged 20,000ms client timeout with empty server stderr. The entire fixture ran 29.31seconds (09:36:21.363 to09:36:50.674 UTC); the finally shutdown did not add another20second timeout. The client does not send cancellation on timeout. Later semantic-hover, completion, signature, reference/rename, formatting and packaged-server suites passed in the same job.
Investigation:
- Source tracing covers didOpen/document capture, hover routing, request guard, shared metadata provider, loader snapshot locking and XML-doc sidecar reads. This interop route does not use semantic-hover analysis. No deadlock, dropped response, or slow operation has been reproduced or established.
- Three bounded fresh-process replays of the unchanged original fixture passed locally, with its20second timeout unchanged: interop hover553.85,516.56,569.32ms. No further repetition was performed.
- These replays used the retained same-checkout packaged LSP, not the missing original raw failing DLL. Package DLL SHA256
18357cc829fec8512add2c757549b543f70b8e7e62083e7192d9a9e5b73bfffe, ProductVersion0.0.0-alpha.0+a758523ac5d892f31bb28fb227647dc5946fe68b. Original fixture executed the raw build output before packaging; its byte identity cannot be proved from the retained artifacts. - A separate cold API probe of that packaged DLL measured metadata Capture113.3ms, System.String resolution2.38ms, XML summary218.45ms, RefreshGeneration3.22ms, complete generation0 with no project references. The reflection probe used PowerShell's .NET10.0.11, which differs from CI10.0.14. Local successful timings do not explain or invalidate the CI failure.
Evidence is retained in the original CI editor-contract artifact, including index/environment, empty analysis stdout, timeout stderr and generated workspace. The artifact does not include wire traffic, per-request server phase timing, raw failing DLL, or process stacks. Diagnostic local receipts are retained under artifacts/p3-checker/final-f9d-ci/ (analysis-request-probe.ndjson, three normal replay logs, cold-metadata-probe.json, original job log and downloaded artifact).
Follow-up: identify whether the request is blocked in metadata/diagnostics or dispatched without a response using adequate phase/wire/stack evidence if it recurs. Preserve the20second request guard, existing assertions, workload and CI budgets. No retry, suppression or deadline increase is a fix for this unresolved finding.
- Dominant language
- C#
- Stars
- 156
- Forks
- 4
- Avg merge
- 15h 1m
- Merged PRs (30d)
- 42
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from nickna/SharpTS
-
priority: P2
Difficulty 4/5 3-5 days Newbie friendliness 38/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
bug priority: P2
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
bug priority: P2
Difficulty 5/5 Over a week Newbie friendliness 30/100
Maintainers usually reply within 1 day
-
bug priority: P2
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
Similar issues
-
enhancement needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
microsoft/microsoft-ui-reactor#1460 ·
Maintainers usually reply within 1 day
-
t/bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dotnet/maui#39950 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CommunityToolkit/Datasync#600 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
NimblePros/deviq-hugo#121 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
philterd/phileas-dotnet#188 ·