Skip to content

Verify CLR4 hang diagnostics and investigate net48 completion stalls - #24

Merged
ShutenOishi merged 1 commit into
mainfrom
feat/phase8-net48-diagnostics
Oct 4, 2026
Merged

ShutenOishi merged 1 commit into
mainfrom
feat/phase8-net48-diagnostics

Conversation

@ShutenOishi

@ShutenOishi ShutenOishi commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

English

Windows net48 completion stalled in CI runs 37111416924 and 37112048520. The latter child reached EOF/flush while the parent's completion stayed pending; the root cause remains unknown.

Verify the previously unexecuted ClrMD reader against a real dump of an owned net48 helper before testing, retain bounded stack/type/task-state diagnostics including PolyShim/Process fields, and increase net48 stress to 30 rounds stopping at the first failure. Raw memory is deleted and excluded from uploads. Add failure-path cleanup checks and record the known evidence and investigation limits.

Validation: local Release build has zero warnings/errors; 28 Python checks pass. Final PR head ad3f1d1a8dc641cdad47f57a361b8d085d69a205, CI 37187722869: all 18 jobs successful, attempt 1. Independently inspected Windows artifact 11297667886 (SHA-256 1f8da51d0bb2423a4f30aeff1f5dc56d8a03d5a98b5df58a1c3246140689b1fa) confirms the CLR4 smoke, 39 TRX / 2,010 Passed and 1,170 paired completed parent/child traces, with no raw dump. Detailed evidence.

This bounded run did not reproduce the stall. It verifies diagnostic preparedness, not a root-cause fix. No production/API/runtime-dependency/frozen-preview/publication-setting change. Publication and 1.0 acceptance remain pending. Exact-main CI and main diagnostic artifact verification follow merge.

日本語

過去のWindows net48完了待ち停止を調査します。子のEOF/flush記録だけでは原因を特定できていません。
解析器を専用net48子の実ダンプで自己検証し、Task状態の採取を拡張します。反復は30回を上限に最初の失敗で止め、生ダンプは削除・アップロードから除外します。
ローカルビルドは警告・エラーなし、Python28件成功。正確な最終PR CIの全18ジョブ成功、Windowsの実ダンプ解析・2,010件Passed・1,170組の完了記録と生ダンプ非同梱を独立確認しました。
今回は停止が再現せず、原因解決とは扱いません。公開・1.0判定は保留です。マージ後に正確なmain CIと診断成果物を検証します。

Copy link
Copy Markdown
Owner Author

Windows diagnostic evidence / Windows診断結果

PR head ad3f1d1a8dc641cdad47f57a361b8d085d69a205, CI 37187722869, checkout 9baec528a5465054cdac3939f44b97f6df0d1988.

Windows deterministic artifact 11297667886, SHA-256 1f8da51d0bb2423a4f30aeff1f5dc56d8a03d5a98b5df58a1c3246140689b1fa, independently downloaded and digest checked:

  • ClrMD reader built with zero warnings/errors and read the owned full-memory dump: CLR 4.8.9345.0, alive managed threads and Program.<Main>$(System.String[]).
  • 39 TRX files, all 2,010 results Passed: 1,650 full-suite and 360 stress results, including net48's 30 rounds and three rounds each for net8/net10.
  • 1,170 paired parent completion-finished and child drained records.
  • No raw .dmp in the uploaded ZIP.

The intermittent stall did not reproduce in this bounded run. The verified diagnostic reader and successful stress are not a root-cause fix; the 1.0 risk remains open. All-platform CI is still pending at this receipt; no merge/publication yet.

日本語: Windows成果物のハッシュ、解析器ビルド、実CLR4管理スタック、2,010件Passed、1,170組の完了記録と生ダンプ非同梱を独立確認しました。今回は再現せず、原因解決とは扱いません。全体CI確認とmainマージ/CIはこの時点では未完了です。

@ShutenOishi
ShutenOishi marked this pull request as ready for review October 4, 2026 08:14
@ShutenOishi
ShutenOishi merged commit 1e79414 into main Oct 4, 2026
18 checks passed

Copy link
Copy Markdown
Owner Author

Exact-main failure — retained, not retried / mainの再現失敗

Merge 1e794140c80b2d0092f2d1a4ae0ceb8d85d790fc, CI 37188258263, Windows job 111394792451: ordinary full suites pass (net48 548, net8/net10 551 each), stress rounds 1–2 pass, round 3 aborts after the unchanged two-minute watchdog in the zero-byte completion case.

Artifact 11297931986, SHA-256 fb7e8b8a9a479e52035240cbda75dae890df0bfa2712a02a314c7874d299613b, independently downloaded/digest checked. The verified reader successfully extracts the actual testhost CLR4 stack/state; raw dumps are absent from the ZIP. The active CliWrap ExecuteAsync state machine has state 2 and all four stdIn/stdOut/stdErr/process task flags 0x7000400 (RanToCompletion set; Faulted/Canceled unset), while the wrapper completion remains 0x2000400 (pending). The child trace reached EOF/drained. This narrows investigation to completion continuation/async enumeration, rather than an unfinished child-exit or pipe task in this captured case.

No rerun or green-after-retry claim. PR #24 diagnostic infrastructure is merged, but the exact-main completion gate is FAILED. A follow-up will test caller SynchronizationContext dependence deterministically before changing behavior. Prior PR-only success does not establish main stability or 1.0 readiness.

日本語: mainでnet48反復3回目の0バイトケースが再現停止しました。失敗は再実行せず保持します。実ダンプ解析では下位4Taskが正常完了し、上位の完了処理だけが保留です。同期コンテキスト依存を回帰テストで検証してから修正します。診断追加はマージ済みですが、main完了条件は失敗であり、1.0安定性を宣言しません。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant