Repository navigation
Capture Windows loader ownership and thread CPU times - #7603
Conversation
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
ReviewDiagnostic-only change to the CDB command line in Things to check when the Windows run executes:
Approving as a diagnostics-only change. |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
[Low impact] The changes since the previous review appear safe to merge. SummaryAdds Windows dump details to help investigate the hang without changing executor behavior.
No new actionable issues were found in the changes since the previous review. Tests and Windows debugger execution were not run during this review. Reviews (3) · Last reviewed commit: "Remove accidental snapshot BOMs for #755..." · Reviewed by Greptile |
|
Assigned #7569: the earlier wait for #7603 AOT run 41900939879 is cleared. That run completed successfully, including Windows engine tests. Released pr-7569 and acquired pr-7603 to work the blocker first. Re-read all PR conversation comments, REST reviews and inline comments, and GraphQL review threads. Claude reports no blocking issues; Codex explicitly records completed/no findings for current head afbb5e4. CodeRabbit and Greptile have no actionable findings. No review threads exist. The snapshot BOM finding is fixed and confirmed by the later review; optional debugger formatting remains a nonblocking suggestion. Assert-PrGreen.ps1 -ForAutoMerge passes, and squash auto-merge is already armed on this unchanged head. Remaining CI: modularpipeline (macos-latest) in run 41900939897 and Apple smoke tests in run 41900939938 are in progress, with no failed checks. This is a wait for newer CI, not a deferral on the completed AOT run. No unchanged-head rerun, on-hold label or local engine-test execution was used. Resolve routes checked: #7194 remains open and #7569 retains Closes #7194; neither main nor #7603 replaces that generator cleanup. #7554 remains open; a passing intermittent engine run does not prove its hang fixed, and this diagnostic PR does not claim to close it. No finished-parent, stale acceptance criteria, superseded PR, reversible decision, human, upstream or credentials route removes the remaining CI gate. No code changes were necessary. All held locks are released at unit completion. |
|
Review: Diagnostic-only change to the Windows CDB dump analysis in
LGTM. |
|
The earlier wait for #7603 run 41895687235 is over: that run failed its Windows engine job with ExpectedStateTests.Pass producing no TRX after the eight-minute dump deadline. The .NET Ubuntu and Windows jobs independently failed STAThreadTests generator snapshots introduced by #7594. Pushed 8db6c98 to fix that deterministic failure. Reused the four reviewed snapshot corrections already validated on #7593: Repeat(100) becomes Repeat(10), and source locations advance five lines. Reviewed the differences against the fixture. Targeted net10.0 STAThreadTests snapshot test passed (1/1); git diff --check passed. Other framework snapshots require CI. No engine tests ran locally. Existing restore/analyzer warnings are tracked by #7412/#7410. Read reviews, inline comments, GraphQL threads and conversation comments: previous-head Claude and Codex verdicts were positive, with no threads or blocking findings. Disabled auto-merge before pushing; new-head automatic reviews and CI must complete before re-arming. GitHub head now matches the pushed commit. Resolve routes: #7593 remains open and its dependency update is not superseded or already on main. #7603 remains an independent diagnostic change, not a fix closing #7554. No finished-parent, stale acceptance criteria, owner decision, upstream release or credentials gate applies. Fixed the actionable snapshot failure rather than repeating the old deferral or rerunning an undiagnosed hang. The Windows hang still needs investigation under #7554; a passing intermittent run alone cannot establish a fix. This unit reports pushed fixes to #7603, not a deferral or a wait on the completed run. |
ReviewWorkflow change ( Concern: unrelated snapshot changes. The PR is described as a diagnostic-only change with no test changes. It also rewrites the four
Suggestion: move the snapshot refresh into its own small PR, or at least say in the description that it is a stale-snapshot fix. That keeps this diagnostics PR easy to revert or bisect. Otherwise the diagnostic commands LGTM. |
The Windows reflection session still hangs after #7594. In the fresh capture analyzed by run 41888472009, thread 36 waits in KERNELBASE!GetConsoleLangId during DLL initialization; threads 37–38 wait in LdrpDrainWorkQueue, as do three exiting executor threads. Existing !locks output only says it scanned 93 critical sections, leaving the loader ownership unclear.
Record verbose critical sections, explicit loader-lock ownership, Windows module versions, and per-thread user/kernel/elapsed times. These help distinguish spinning starters from blocked loader initialization. Remove the hard-coded native Thread +0x110 read: its values disagree with clrthreads in this capture. Continue correlating target addresses with clrthreads instead.
Investigates #7554. This diagnostic change does not close the issue or claim to fix the hang. No executor behavior or timeout is changed. This PR also refreshes the four stale STAThreadTests generator snapshots after #7594 reduced Repeat(100) to Repeat(10) and shifted source locations five lines. Their accidental UTF-8 BOMs are removed to match the existing snapshot format.
Validation: actionlint 1.7.7, PowerShell parser validation of the edited native-analysis script, and git diff --check passed. CDB execution requires the hosted Windows diagnostic run. No engine tests ran locally.
Debugger commands follow Microsoft critical-section guidance and !runaway documentation. CPU times may be unavailable if the captured dump lacks thread timing data; the remaining commands still run and the raw debugger output is retained.
Summary by CodeRabbit
0x110.Snapshot review fix validation (
afbb5e4d14): removed only the three leading BOM bytes from each STA snapshot. The focused net10.0 STAThreadTests generator snapshot test passed (1/1), demonstrating that the generated text still matches; git diff --check passed. Other target frameworks remain for CI.