Pull Request on 2026年03月26日

dotnet/runtimeにマージされたPull RequestをAIで日本語要約

注意点

このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。


目次

  1. #126145 Disable System.Security.Cryptography.Tests from Android CoreCLR smoke tests
  2. #126143 Add mention of CORERUN_IN_BROWSER variable
  3. #126139 Update issue for ReentrantWaitFromSyncContextTest
  4. #126120 [wasm][coreclr] Disable CircularCctor multithreading tests on single-threaded WASM
  5. #126119 [release/9.0] Update dependencies from dotnet/emsdk
  6. #126114 Remove redundant Atomic wrapper and fix shared-prefix extraction in regex reduction
  7. #126092 Lower regex MaxUnrollSize from 16 to 7
  8. #126090 Delete contextPointers arg from PAL_VirtualUnwind
  9. #126087 [browser] deprecate setEnvironmentVariable for mono, drop it for coreclr
  10. #126085 Delete AppDomain::ExceptionUnwind (no-op)
  11. #126077 Move the labeler readme doc out of the workflows folder
  12. #126019 [wasm][coreclr] Disable structinreg P/Invoke test on platforms without native test assets
  13. #126012 Set MSBUILDDEBUGPATH in CI so MSBuild crash diagnostics are preserved
  14. #126011 [release/8.0] Fix OOM in BigInteger OuterLoop tests causing SIGKILL on Linux
  15. #126010 Reduce LargeUriAndHeaders_Works test size on Android to fix timeout flakiness
  16. #126001 [release/10.0] Source code updates from dotnet/dotnet
  17. #125964 Fix flaky test by throwing only after all services have started
  18. #125918 Fix flaky Linux process name tests by polling after Process.Start
  19. #125907 Fix flaky MainWindow tests by replacing notepad.exe with a deterministic RemoteExecutor helper
  20. #125875 Fix COMDelegate::BindToMethod with static virtuals
  21. #125848 Add StandardInputHandle/OutputHandle/ErrorHandle SafeFileHandle properties to ProcessStartInfo
  22. #125655 [browser] Fix WasmEmitTypeScriptDefinitions making builds non-incremental (WBT test)
  23. #125645 [browser] Remove public WasmInlineBootConfig, WasmBootConfigFileName properties
  24. #125566 [wasm] Bump chrome for testing - linux: 146.0.7680.80, windows: 146.0.7680.80
  25. #125557 Add openbsd non-portable probing
  26. #124498 Fix TokenBucketRateLimiter AttemptAcquire(0) with fractional tokens

#126145 Disable System.Security.Cryptography.Tests from Android CoreCLR smoke tests

  • 作成者: @danmoseley
  • 作成日時: 2026年03月26日 03:28:35(UTC)
  • マージ日時: 2026年03月26日 13:46:30(UTC)
  • ラベル: disabled-test area-Infrastructure-coreclr os-android

概要

Android CoreCLR エミュレータ上で System.Security.Cryptography.Tests が メモリ不足(OOM)により確定的に失敗するため、スモークテストから除外します。暗号テストスイートが約2GBのメモリ上限に達して lowmemorykiller により強制終了されており、個別テストの無効化では根本的な解決にならないため、プロジェクト全体を除外することで対応します。

変更内容

  • src/libraries/tests.proj: System.Security.Cryptography.Tests を Android CoreCLR スモークテストプロジェクトリストから削除(+2/-1)
  • 根本原因に関する Issue 参照コメント (#118603) を追加

パフォーマンスへの影響

影響なし(テスト除外のため実行時間は短縮されます)

関連Issue

  • #118603 - 根本的なメモリ問題の追跡
  • #62547 - Android x64/x86 の既存除外設定
  • #118733 - 過去の個別テスト無効化試行

その他

  • Android CoreCLR x64 エミュレータ上で2025年8月のスモークテスト有効化以降、100%の失敗率を記録していました
  • 過去に個別テストを無効化する対応を試みても(#118733)、後で他のテスト(例:RSAKeyFileTests)が同様の問題で失敗するため、根本的なメモリ問題の解決を待つまでプロジェクト全体を除外する判断です

#126143 Add mention of CORERUN_IN_BROWSER variable

  • 作成者: @MichalStrehovsky
  • 作成日時: 2026年03月26日 03:12:00(UTC)
  • マージ日時: 2026年03月26日 08:33:06(UTC)
  • ラベル: area-Build-mono

概要

CoreCLR WebAssembly ビルド/実行ドキュメントを更新し、CORERUN_IN_BROWSER 変数によるブラウザワークフロー有効化の説明を追加しました。また、ファイルコピーが dotnet-serve 実行前に必要となるため、ドキュメント内の手順を再構成しています。

変更内容

  • docs/workflow/building/coreclr/wasm.md: WebAssembly ブラウザワークフロー有効化時の CORERUN_IN_BROWSER CMake 設定変数の説明を追加
  • WASM_PRELOAD_DIR へのファイルコピー手順を dotnet-serve 実行前に移動
  • corerun.html がブラウザエントリーポイントであること、およびブラウザワークフローが有効になっていない場合はファイルが存在しないことを明確化

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

ドキュメント内容の追加/整理のみで、実装コードへの変更はありません(マークダウンファイルのみ)。


#126139 Update issue for ReentrantWaitFromSyncContextTest

  • 作成者: @eduardo-vp
  • 作成日時: 2026年03月26日 00:15:24(UTC)
  • マージ日時: 2026年03月26日 05:58:46(UTC)
  • ラベル: area-System.Threading

概要

ReentrantWaitFromSyncContextTestのMonoランタイムにおけるActiveIssue属性の参照先をより新しい追跡Issueに更新し、テストのスキップ/トリアージを現在の調査状況と整合させるためのメタデータ更新です。

変更内容

  • src/libraries/System.Threading/tests/MonitorTests.cs: ReentrantWaitFromSyncContextTestのMonoランタイム向けActiveIssue属性のURL参照を更新(+1/-1)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

テストメタデータの更新のみで、テストロジックや実装コードへの変更はありません。


#126120 [wasm][coreclr] Disable CircularCctor multithreading tests on single-threaded WASM

  • 作成者: @radekdoulik
  • 作成日時: 2026年03月25日 20:43:44(UTC)
  • マージ日時: 2026年03月26日 15:05:04(UTC)
  • ラベル: arch-wasm area-Infrastructure-coreclr

概要

シングルスレッド WASM 環境でマルチスレッド型初期化子(circular cctor)テストがデッドロック/クラッシュするため、ConditionalFact(IsMultithreadingSupported) 属性を追加して、マルチスレッド対応環境でのみ実行するように修正しました。

変更内容

  • CircularCctorFourThreads.cs: [Fact][ConditionalFact(IsMultithreadingSupported)] に変更
  • CircularCctorThreeThreads01/02/03.cs: 同様に [Fact][ConditionalFact(IsMultithreadingSupported)] に変更
  • CircularCctorFourThreadsBFI.il、CircularCctorThreeThreads01/02/03BFI.il: IL ファイルの構造を更新し、マルチスレッド対応環境でのみ実行可能にする条件を追加

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 変更はテストインフラストラクチャのみに限定されており、ランタイム機能や公開 API に影響なし
  • WASM ブラウザ環境など単一スレッド環境で型初期化子テストを実行する際に、テスト実行のスキップにより安定性が向上
  • C# テストファイルと対応する IL テストファイルの両方が更新されているため、テストの一貫性が保たれている

#126119 [release/9.0] Update dependencies from dotnet/emsdk

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月25日 20:43:08(UTC)
  • マージ日時: 2026年03月26日 00:01:26(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

.NET 9.0リリースブランチにおいて、Emscripten SDK関連の依存パッケージをアップデートする自動依存関係更新です。JIT Tools、Mono LLVM SDK/Toolsのマルチプラットフォーム版とEmscriptenマニフェストパッケージが更新されます。

変更内容

  • eng/Version.Details.xml: Emscripten SDK関連パッケージの詳細バージョン情報を更新

    • JIT Tools(linux-arm64/x64、linux-musl-arm64/x64、win-arm64/x64、osx-arm64/x64): 19.1.0-alpha.1.26152.4 → 19.1.0-alpha.1.26167.4
    • Mono LLVM SDK/Tools(複数プラットフォーム): 19.1.0-alpha.1.26152.4 → 19.1.0-alpha.1.26167.4
    • Microsoft.SourceBuild.Intermediate.emsdk: 9.0.16-servicing.26160.4 → 9.0.15-servicing.26175.1
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport: 9.0.16-servicing.26160.4 → 9.0.15-servicing.26175.1
    • Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100: 9.0.16 → 9.0.15
  • eng/Versions.props: 対応するプロパティ値を更新

  • NuGet.config: NuGetフィード設定の軽微な変更

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 自動依存関係更新PR(dotnet-maestro[bot]作成)
  • コヒーレンシー更新により、Emscriptenマニフェストパッケージを親依存として、JIT ToolsおよびMono LLVM SDK/Toolsの整合性を保証
  • dotnet/emsdkリポジトリのrelease/9.0ブランチに基づく更新(2026年3月25日ビルド)

#126114 Remove redundant Atomic wrapper and fix shared-prefix extraction in regex reduction

  • 作成者: @danmoseley
  • 作成日時: 2026年03月25日 18:47:31(UTC)
  • マージ日時: 2026年03月26日 03:26:02(UTC)
  • ラベル: area-System.Text.RegularExpressions

概要

正規表現の解析時ツリーリダクション処理を改善する2つの変更を実施します。

  1. 冗長なAtomicラッパーの削除: バックトラック不可能な単一ノード(One/Notone/Set/Multi)から不要なAtomic((?>...))ラッパーを削除。383パターン(2.2%)に影響。

  2. ExtractCommonPrefixTextの修正: 非テキストブランチが存在する場合、処理を中断せず継続することで、後続する共通プレフィックスを持つテキストブランチのファクタリングを可能に。1,090パターン(6.3%)に影響。

変更内容

  • RegexNode.cs: ReduceAtomic()メソッドを拡張し、バックトラック不可能なリーフノードからAtomicラッパーを削除。ExtractCommonPrefixText()メソッドでnullを返す際の処理をreturnからcontinueに変更し、非テキストブランチをスキップして処理継続。

  • RegexReductionTests.cs: 冗長なAtomic削除と共通プレフィックスファクタリングについてのユニットテストを追加。

  • Regex.Match.Tests.cs: 上記リダクション変更がマッチング動作を保証することを確認する関数型テストを追加。

パフォーマンスへの影響

  • Atomicラッパー削除: JIT最適化により既に不要なコードは削除されるため、測定可能なパフォーマンス改善なし。ツリー構造はクリーンになる。

  • プレフィックスファクタリング修正: 大多数は2ブランチケースで無視できるレベル。4ブランチ以上の約50パターンはswitch分岐ディスパッチにより適度な改善を期待。

関連Issue

#126104

その他

  • GitHub Copilot支援により生成されたPR。
  • 実世界の17,434パターン分析(Regex_RealWorldPatterns.json)に基づいた最適化。

#126092 Lower regex MaxUnrollSize from 16 to 7

  • 作成者: @stephentoub
  • 作成日時: 2026年03月25日 14:27:16(UTC)
  • マージ日時: 2026年03月26日 21:16:11(UTC)
  • ラベル: area-System.Text.RegularExpressions

概要

正規表現エンジンの固定カウント単一文字リピーター(例:\d{N})に対して、アンロール展開とベクトル化操作の選択基準となるMaxUnrollSize閾値を16から8に低下させました。ベンチマーク結果から、カウント8以上ではベクトル化操作(ContainsAnyExceptなど)が全ての文字クラス型で有効であることが確認されています。

変更内容

  • RegexGenerator.Emitter.cs:ソースジェネレーターのMaxUnrollSizeを16→8に変更(7行の変更)
  • RegexCompiler.cs:コンパイルエンジンのMaxUnrollSizeを16→8に変更(7行の変更)

影響範囲:リージェックスコンパイラとソースジェネレーターの両方で、カウント9~16のリピーターはアンロール展開ではなくベクトル化操作を使用するようになります。

パフォーマンスへの影響

改善あり:ベンチマーク結果に基づき、カウント8以上で以下のように改善されます

カウント 改善率
8 Vector 0.75x~0.86x(文字クラス型により異なる)
16 Vector 0.35x~0.53x(文字クラス型により異なる)

カウント4以下ではアンロール展開が優勢(1.11x~2.06x高速)であり、この変更の対象外です。カウント9~16の正規表現では、ベクトル化により実行速度が25%~65%向上する見込み。

関連Issue

なし

その他

このPRはGitHub Copilotの支援により生成されました。


#126090 Delete contextPointers arg from PAL_VirtualUnwind

  • 作成者: @am11
  • 作成日時: 2026年03月25日 13:30:41(UTC)
  • マージ日時: 2026年03月26日 18:34:18(UTC)
  • ラベル: area-PAL-coreclr community-contribution

概要

コミット 0b42ec71bfc 以降、未使用となっていた PAL_VirtualUnwind 関数の contextPointers 引数を削除しました。この変更は、PAL(Platform Abstraction Layer)の例外ハンドリング機能の内部実装の簡潔化を目指しています。

変更内容

  • src/coreclr/pal/inc/pal.h: PAL_VirtualUnwind 関数シグネチャから contextPointers 引数を削除
  • src/coreclr/pal/src/config.h.in: 関連設定オプションを削除
  • src/coreclr/pal/src/configure.cmake: CMake設定から該当構成を削除
  • src/coreclr/pal/src/exception/remote-unwind.cpp: 未使用引数参照を削除
  • src/coreclr/pal/src/exception/seh-unwind.cpp: contextPointers パラメータの処理ロジック(約150行)を削除
  • src/coreclr/vm/eetwain.cpp, exceptionhandling.cpp, frames.cpp, stackwalk.cpp: 呼び出し元で対応する引数を削除

パフォーマンスへの影響

影響なし(これは内部実装の整理であり、パフォーマンスへの改善・悪化はないと考えられます)

関連Issue

なし

その他

本変更は内部実装(PAL)に限定されており、公開APIへの影響はありません。既に機能していない機能の引数を削除するための保守作業です。


#126087 [browser] deprecate setEnvironmentVariable for mono, drop it for coreclr

  • 作成者: @pavelsavara
  • 作成日時: 2026年03月25日 12:53:15(UTC)
  • マージ日時: 2026年03月26日 08:35:25(UTC)
  • ラベル: arch-wasm area-System.Runtime.InteropServices.JavaScript os-browser

概要

ブラウザ環境での setEnvironmentVariable ランタイムAPIの廃止・削除。CoreCLR向けブラウザランタイムからは完全に削除し、Mono向けブラウザランタイムでは非推奨化する。環境変数の設定には withEnvironmentVariable() またはホストビルダーベースの構成を使用すべき。

変更内容

  • CoreCLR削除: RunAPIType の公開API、TypeScript型定義(.d.ts)、ブラウザユーティリティの実装から setEnvironmentVariable を完全削除
  • Mono非推奨化: RunAPIType の型定義に非推奨マーク付与、withEnvironmentVariable() を推奨代替として記載
  • サンプル更新: ブラウザシャットダウンサンプルの setEnvironmentVariable 使用箇所を削除

パフォーマンスへの影響

影響なし

関連Issue

#120226

その他

  • この変更は内部実装・ブラウザランタイムAPIの調整であり、公開APIの破壊的変更ではない(CoreCLRの setEnvironmentVariable は本来未実装で、Monoについても段階的な非推奨化によって移行期間を提供)
  • ブラウザ環境では環境変数の実行時注入という概念が他プラットフォームと異なるため、ホストビルダーベースの構成に統一する意図と考えられる

#126085 Delete AppDomain::ExceptionUnwind (no-op)

  • 作成者: @am11
  • 作成日時: 2026年03月25日 12:08:54(UTC)
  • マージ日時: 2026年03月26日 07:20:07(UTC)
  • ラベル: area-VM-coreclr community-contribution

概要

AppDomain::ExceptionUnwindメソッドは不要な空実装(no-op)であるため、削除されました。このメソッドはランタイムの例外処理フレームワーク内で何の機能も果たしていませんでした。

変更内容

  • src/coreclr/vm/appdomain.cpp: AppDomain::ExceptionUnwindメソッドの実装を削除(17行削除)
  • src/coreclr/vm/appdomain.hpp: メソッドの宣言を削除(2行削除)
  • src/coreclr/vm/frames.cpp: 関連する呼び出しコードを削除(12行削除)
  • src/coreclr/vm/frames.h: 関連するヘッダ定義を削除(7行削除)

パフォーマンスへの影響

影響なし(不要な空実装の削除のため)

関連Issue

なし

その他

この変更はランタイムの内部実装に限定されており、公開APIには影響しません。AppDomainに関連する例外処理の過去のレガシーコードの整理の一環と考えられます。


#126077 Move the labeler readme doc out of the workflows folder

  • 作成者: @jeffhandley
  • 作成日時: 2026年03月25日 07:58:01(UTC)
  • マージ日時: 2026年03月26日 04:49:41(UTC)
  • ラベル: area-Infrastructure

概要

.github/labeler-readme.md ファイルを workflows フォルダから移動させ、GitHub Actions のエージェント型ワークフロー(gh aw コマンド)に誤認識されるのを防ぐ変更です。

変更内容

  • .github/labeler-readme.md ファイルの再配置(workflows フォルダ外へ移動)

パフォーマンスへの影響

影響なし

関連Issue

#126077

その他

この変更はドキュメント配置の最適化であり、GitHub Actions のワークフロー自動化機能の誤検出を回避するための措置です。


#126019 [wasm][coreclr] Disable structinreg P/Invoke test on platforms without native test assets

  • 作成者: @radekdoulik
  • 作成日時: 2026年03月24日 10:20:04(UTC)
  • マージ日時: 2026年03月26日 09:27:27(UTC)
  • ラベル: arch-wasm area-Infrastructure-coreclr

概要

WebAssembly/CoreCLRプラットフォーム上で、ネイティブテストアセットが利用できない環境におけるstructinreg P/Invokeテストの実行を無効化するもの。テストが[DllImport("jitstructtests_lib")]を使用するため、ネイティブリンクの準備が完了するまでテストをスキップします。

変更内容

  • src/tests/JIT/Methodical/structs/systemvbringup/structpasstest.cs: PlatformDetection.PlatformDoesNotSupportNativeTestAssetsが真の場合、[ActiveIssue]属性でテストをスキップするガード条件を追加(+2行)

パフォーマンスへの影響

影響なし

関連Issue

#123946

その他

本変更は一時的な対応であり、WebAssemblyプラットフォーム向けのネイティブテストアセット対応やネイティブリンク準備の完了に伴い、この[ActiveIssue]ガード条件は削除される見込みです。


#126012 Set MSBUILDDEBUGPATH in CI so MSBuild crash diagnostics are preserved

  • 作成者: @danmoseley
  • 作成日時: 2026年03月24日 04:00:12(UTC)
  • マージ日時: 2026年03月26日 13:56:12(UTC)
  • ラベル: area-Infrastructure

概要

MSBuild がクラッシュした際の診断ファイル(MSBuild_*.failure.txt)を CI パイプラインで保持するため、グローバルビルドジョブテンプレートに MSBUILDDEBUGPATH 環境変数を追加します。

これまで一部のコンポーネント固有のビルドスクリプトのみが診断ファイルを artifacts/log/<config>/MsbuildDebugLogs に出力していましたが、トップレベルのビルドパイプラインではデフォルトのシステム一時ディレクトリが使用され、エージェントのクリーンアップ時に失われていました。

変更内容

  • eng/pipelines/common/global-build-job.yml: ジョブレベルのパイプライン変数として MSBUILDDEBUGPATH を追加し、artifacts/log/<config>/MsbuildDebugLogs を指定。既存の condition: always() ログ発行ステップにより、診断ファイルは自動的にビルドアーティファクトとして公開されます。

パフォーマンスへの影響

影響なし

関連Issue

#92290

その他

  • 本 PR は GitHub Copilot の支援を受けて生成されました。
  • 変更は CI インフラストラクチャのみで、ランタイムやコンパイラの実装には影響しません。

#126011 [release/8.0] Fix OOM in BigInteger OuterLoop tests causing SIGKILL on Linux

  • 作成者: @Copilot
  • 作成日時: 2026年03月24日 03:53:39(UTC)
  • マージ日時: 2026年03月26日 19:53:11(UTC)
  • ラベル: Servicing-approved area-System.Numerics test-bug

概要

release/8.0ブランチのSystem.Runtime.Numerics.TestsのOuterLoopテストがLinux環境でOOM(メモリ不足)によるSIGKILL(終了コード137)で失敗していた問題を修正します。LargeValueLogTestsDoubleExplicitCastFromLargeBigIntegerTestsBigIntegerint.MaxValue / 10ビット単位でシフトしていたため、反復ごとに107MBのメモリを消費していました。この変更により、シフト量を1 << 24に削減し、反復ごとのメモリ消費を107MBから~8MBに削減しながら、テストの正当性を維持します。

変更内容

  • log.cs / LargeValueLogTests: int.MaxValue / 101 << 24に変更。シフト操作と期待ログ値の計算両方で置換。テストの正当性は保持(値はBigInteger.Log精度の閾値を十分超過)。
  • cast_from.cs / DoubleExplicitCastFromLargeBigIntegerTests: int.MaxValue / 101 << 24に変更。2^(1<<24)double.MaxValue ≈ 2^1024をはるかに超える値のままで、無限大アサーションの有効性を保持。

パフォーマンスへの影響

反復ごとのピークメモリ割り当てが107MBから8MBに削減。メモリ制約のあるコンテナ環境でのOOMを解消。テスト実行パフォーマンスの向上が期待できます。

関連Issue

なし

その他

  • テスト専用の変更: プロダクトコードに変更なし。NuGetパッケージオーサリング不要。
  • リスク: 極めて低い。テストヘルパー関数のみの変更で、アサーションは大きさが縮小された値でも意味的に正しい。
  • 顧客への影響: release/8.0の全4つのLinuxレグ(x64、arm64、musl-x64、musl-arm64)で100%失敗していたOuterLoopテストを修正。過去1ヶ月間に56回報告されていた既知の問題。

#126010 Reduce LargeUriAndHeaders_Works test size on Android to fix timeout flakiness

  • 作成者: @Copilot
  • 作成日時: 2026年03月24日 03:25:47(UTC)
  • マージ日時: 2026年03月26日 02:47:07(UTC)
  • ラベル: area-System.Net.Http

概要

AndroidのHTTPスタック上でLargeUriAndHeaders_Worksテストが一貫してタイムアウトしていた問題を修正。テストが生成するパス・ヘッダー名・ヘッダー値の文字列サイズをプラットフォーム別に調整し、Androidでは100K文字に削減する一方、他のプラットフォームでは元の10M文字のテストレベルを維持します。

変更内容

  • HttpClientHandlerTest.cs: length計算にAndroid固有の分岐を追加
    • WinHTTP: 65,000文字(既存)
    • Android: 100,000文字(新規)
    • その他プラットフォーム: 10,000,000文字(既存)
int length = IsWinHttpHandler ? 65_000
    : PlatformDetection.IsAndroid ? 100_000
    : 10_000_000;

パフォーマンスへの影響

Android環境でのテスト実行時間短縮。Androidでの文字列割り当てサイズを1/100に削減することで、HTTPスタックの処理時間およびメモリ使用量を軽減し、テストのタイムアウト発生を回避します。他のプラットフォームへの影響なし。

関連Issue

#124487

その他

なし


#126001 [release/10.0] Source code updates from dotnet/dotnet

  • 作成者: @dotnet-maestro[bot]
  • 作成日時: 2026年03月24日 00:05:43(UTC)
  • マージ日時: 2026年03月26日 16:59:44(UTC)
  • ラベル: Servicing-approved area-codeflow

概要

dotnet/dotnetリポジトリからのコードフロー更新です。.NET 10.0.1xx リリースブランチの最新ビルド(20260323.16)に同期され、複数の依存関係パッケージが更新されました。主にMicrosoft.CodeAnalysis、Microsoft.DotNet.Arcade.Sdk、およびNuGetツールチェーン関連のパッケージが含まれています。

変更内容

  • NuGet.config: NuGetフィードの構成を更新(+1/-1)
  • eng/Version.Details.props: バージョン詳細設定を更新(+29/-29)
  • eng/Version.Details.xml: バージョン詳細XMLを更新(+69/-69)
  • global.json: グローバルJSON設定を更新(+3/-3)

更新された主要依存関係:

  • Microsoft.CodeAnalysis系パッケージ: 5.0.0-2.26170.102 → 5.0.0-2.26173.116
  • Microsoft.DotNet.Arcade.Sdk他ビルドツール: 10.0.0-beta.26170.102 → 10.0.0-beta.26173.116
  • NuGet.Frameworks/Packaging/ProjectModel/Versioning: 7.0.2-rc.17102 → 7.0.2-rc.17416
  • Microsoft.DotNet.Cecil: 0.11.5-alpha.26170.102 → 0.11.5-alpha.26173.116

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは自動コードフロー更新(dotnet-maestro[bot]による)です
  • VMR(Virtual Monorepo)から複数のリポジトリにまたがる関連変更が含まれます:aspnetcore、efcore、runtime、sdk、sourcelink、winformsの各リポジトリの更新が対応しています
  • release/10.0ブランチへの同期です

#125964 Fix flaky test by throwing only after all services have started

  • 作成者: @svick
  • 作成日時: 2026年03月23日 14:30:35(UTC)
  • マージ日時: 2026年03月26日 16:11:34(UTC)
  • ラベル: area-Extensions-Hosting

概要

BackgroundServiceの例外集約テストのフレーキーネスを削減するPR。複数のバックグラウンドサービスが全て開始された後にのみ例外を発生させるよう、DI提供のBarrierを使用することで、タイミング依存の問題を解決します。また、ホスティングシャットダウンヘルパーでのリソース処理も改善しています。

変更内容

  • BackgroundServiceExceptionTests.cs: BackgroundService_MultipleExceptions_ThrowsAggregateExceptionテストを修正。DIコンテナから注入されたBarrierを使用して、全バックグラウンドサービスの開始を同期させ、その後に例外を発生させるよう変更。時間ベースの遅延をTask.Yield()に置き換え、壁時計タイミングへの依存を排除。
  • HostingAbstractionsHostExtensions.cs: WaitForShutdownAsyncで作成されたCancellationTokenRegistrationusingステートメントで破棄し、リソース保有期間を適切に管理。
  • TaskTimeoutExtensions.cs: テスト関連の細微な変更。
  • Microsoft.Extensions.Hosting.Unit.Tests.csproj: テストプロジェクト設定の更新。

パフォーマンスへの影響

影響なし。本変更はテストの信頼性向上とリソース管理の改善が主目的であり、ランタイムパフォーマンスへの直接的な影響はありません。

関連Issue

#125589

その他

  • テストの決定性を向上させるため、タイミング依存を排除し、Barrierを使用した同期メカニズムに置き換えています。
  • CancellationTokenRegistrationの破棄により、ホスティングシャットダウン時のリソースリークが防止されます(内部実装の改善)。

#125918 Fix flaky Linux process name tests by polling after Process.Start

  • 作成者: @Copilot
  • 作成日時: 2026年03月22日 06:08:53(UTC)
  • マージ日時: 2026年03月26日 14:23:35(UTC)
  • ラベル: area-System.Diagnostics.Process

概要

Linux上でProcess.Start()直後にProcessNameが期待値(例:"sleep")ではなく親プロセスの切り詰められた名前(".NET Long Runni")を返すフレーキーなテスト失敗を修正します。根本原因は、fork()後でexecve()完了前にプロセス情報を読み取る際に発生する競合状態です。修正では、ProcessNameが期待値と一致するまで50ms間隔で最大1秒間ポーリングするようテストを更新します。本番コードの変更はありません。

変更内容

  • src/libraries/System.Diagnostics.Process/tests/ProcessTests.Unix.cs
    • ProcessStart_OnLinux_UsesSpecifiedProgram および ProcessStart_OnLinux_UsesSpecifiedProgramUsingArgumentList テストメソッドにポーリング/リトライロジックを追加
    • Process.Refresh()を50ms間隔で最大20回呼び出し、ProcessNameが"sleep"に一致するまで待機
    • fork/execの競合ウィンドウ中に/proc/<pid>/statcommフィールドが親プロセス名を示す現象に対応

パフォーマンスへの影響

影響なし。ポーリングループは期待値が観測された時点で即座に終了するため、通常(競合が発生しない)ケースではオーバーヘッドなし。最悪ケースで追加遅延は1秒ですが、テストが60秒のプロセス起動を伴うため許容範囲内です。

関連Issue

#111431

その他

  • テスト実装のみの変更であり、System.Diagnostics.Processライブラリの本番コードは改変されていません
  • 影響範囲は限定的(2つのテストメソッドのみ)でリスク低
  • 既知の間欠的問題であり、新規回帰ではありません

#125907 Fix flaky MainWindow tests by replacing notepad.exe with a deterministic RemoteExecutor helper

  • 作成者: @Copilot
  • 作成日時: 2026年03月22日 03:43:56(UTC)
  • マージ日時: 2026年03月26日 03:42:36(UTC)
  • ラベル: area-System.Diagnostics.Process

概要

Windows 11の新型メモ帳がApp Execution Aliasを使用している問題により、Process.Start("notepad.exe")がスタブランチャーのPIDを返すため、MainWindowFinderがウィンドウマッチングに失敗していました。このPRでは、notepad.exeへの依存をRemoteExecutorを使用した決定論的なヘルパープロセスに置き換えます。ヘルパープロセスはバックグラウンドスレッドでMessageBoxWを呼び出し、制御されたPIDを持つ可視の所有者なしトップレベルウィンドウを作成します。

変更内容

  • ProcessTests.csMainWindowHandle_GetWithGui_ShouldRefresh_WindowsMainWindowTitle_GetWithGui_ShouldRefresh_Windowsの2つのテストメソッドを削除
  • ProcessTests.Windows.cs — 以下を追加
    • IsNotNanoServerNotServerCoreAndRemoteExecutorSupported条件を追加(既存のGUIガードを保持し、RemoteExecutor対応確認を追加)
    • CreateMainWindowWithTitle()静的ヘルパーメソッド:バックグラウンドスレッドでMessageBoxWを実行し、ウィンドウが可視になるまでポーリング、"ready"をstdoutに出力、親プロセスに殺されるまでスリープ
    • マージされたシングル[ConditionalFact] MainWindowHandle_And_Title_GetWithGui_ShouldRefresh_Windows(async Task):1パスでMainWindowHandleMainWindowTitleの両方を検証し、テスト実行時間を短縮

パフォーマンスへの影響

テスト実行時間の改善(2つの独立したテストを1つの統合テストに統合)。本番コードに変更なし。

関連Issue

#101700

その他

  • テスト専用の変更のため低リスク
  • 本番コードに変更なし
  • 既存のテストスイートのパターン(stdoutベースの同期化)に準拠
  • NanoServerおよびServerCoreのスキップ条件は保持
  • Windows 11でのnotepad.exeのApp Execution Alias動作に対応した決定論的なアプローチ

#125875 Fix COMDelegate::BindToMethod with static virtuals

  • 作成者: @MichalPetryka
  • 作成日時: 2026年03月20日 22:46:24(UTC)
  • マージ日時: 2026年03月26日 07:18:06(UTC)
  • ラベル: area-VM-coreclr linkable-framework community-contribution

概要

COM呼び出しにおけるスタティック仮想メソッドの処理を修正しました。従来のVSD(Virtual Stub Dispatch)スタブを誤って使用していたことによるランタイムアサート失敗の問題を解決しています。

変更内容

  • comdelegate.cpp: COMDelegate::BindToMethodでスタティック仮想メソッドに対する不適切なVSDスタブ使用を削除
  • GenericVirtualMethodImplNode.cs: AOT(Ahead-of-Time)コンパイラにおけるジェネリック仮想メソッド実装の処理を修正
  • MetadataManager.cs: 不要なメタデータ管理ロジックを削除
  • MethodInfoTests.cs: スタティック仮想メソッドのバインディングを検証するテストケースを追加
  • illink テストケース: データフロー解析テストを更新して修正結果に対応

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

本修正はCOM相互運用機能(内部実装レベル)とAOTコンパイラに関連します。スタティック仮想メソッドはC# 11で導入された機能で、これまでCOM委譲経由での呼び出しが正しく機能していませんでした。


#125848 Add StandardInputHandle/OutputHandle/ErrorHandle SafeFileHandle properties to ProcessStartInfo

  • 作成者: @Copilot
  • 作成日時: 2026年03月20日 17:57:11(UTC)
  • マージ日時: 2026年03月26日 07:48:15(UTC)
  • ラベル: area-System.Diagnostics.Process

概要

ProcessStartInfoに3つの新しいSafeFileHandle?プロパティ(StandardInputHandleStandardOutputHandleStandardErrorHandle)を追加し、子プロセスにファイルハンドルを直接渡す機能を実装しました。これにより、RedirectStandard*パイプメカニズムを経由せずにハンドルベースのリダイレクションが可能になります。

var psi = new ProcessStartInfo("grep") { ArgumentList = { "test" } };
SafeFileHandle.CreateAnonymousPipe(out SafeFileHandle readPipe, out SafeFileHandle writePipe);
psi.StandardInputHandle = readPipe;
psi.StandardOutputHandle = File.OpenHandle("output.txt", FileMode.Create, FileAccess.Write);
using Process process = Process.Start(psi)!;
writePipe.Dispose();

変更内容

  • ProcessStartInfo.cs: StandardInputHandleStandardOutputHandleStandardErrorHandle auto-propertyを追加(SafeFileHandle?型)、XML documentationを含む
  • Process.cs: ハンドル/パイプ生成の検証と管理を一元化。UseShellExecute=falseかつ対応するRedirectStandard*=falseの検証、ValidateHandleヘルパーメソッド実装
  • Process.Windows.cs: DuplicateAsInheritableIfNeededヘルパーを追加し、ハンドルが既に継承可能な場合は不要な複製を回避
  • Process.Unix.cs: Unix実装を更新してハンドルベースのリダイレクションに対応
  • Interop.ForkAndExecProcess.cs: 標準入出力ファイルディスクリプタを明示的に渡す方式に変更、DangerousAddRef/DangerousReleaseの追跡ロジック追加
  • ネイティブ実装: pal_process.cでネイティブ側パイプ生成を削除し、dup2でファイルディスクリプタをマップ。pipe2対応の検出機能を追加
  • ProcessHandlesTests.cs: パイプリダイレクション、継承ハンドル、プロセス間パイピング、エラーケースの包括的なテスト追加

パフォーマンスへの影響

影響なし

関連Issue

#125848

その他

  • 公開API追加: 新しい3つのプロパティは公開API(ref assemblyに追加済み)
  • 互換性: 既存のRedirectStandard*プロパティとの併用は不可(検証エラー)、UseShellExecute=trueとの併用も不可
  • ハンドル管理: 呼び出し元がStart()後のハンドル破棄を責務。Processは内部生成したパイプ/ハンドルのみ破棄
  • ハンドル継承可能性: 呼び出し元が渡すハンドルは継承可能である必要がなく、ランタイムが必要に応じて複製

#125655 [browser] Fix WasmEmitTypeScriptDefinitions making builds non-incremental (WBT test)

  • 作成者: @maraf
  • 作成日時: 2026年03月17日 14:27:24(UTC)
  • マージ日時: 2026年03月26日 14:51:06(UTC)
  • ラベル: arch-wasm area-Build-mono os-browser

概要

WASM テンプレートビルドテストを更新し、WasmEmitTypeScriptDefinitions 有効時のビルド増分性(インクリメンタルビルド)を検証するようにしました。MSBuild の -question フラグを使用してプロジェクトの最新状態を直接確認し、dotnet.d.tswwwroot にコピーされた後もビルドが非増分化しないことを保証します。

変更内容

  • src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs: 「2回目のビルド + ファイル存在確認」チェックを MSBuild -question による最新状態チェックに置き換え(+3/-4 行)

パフォーマンスへの影響

影響なし

関連Issue

#124729#125509

その他

本PR は前回の修正(#125509)での WBT(WASM Build Template)テスト更新漏れを補完するものです。テスト実行時にバンドルアサーションは -question 呼び出し時は無効化されます(実際のビルド出力が生成されないため)。


#125645 [browser] Remove public WasmInlineBootConfig, WasmBootConfigFileName properties

  • 作成者: @maraf
  • 作成日時: 2026年03月17日 11:02:00(UTC)
  • マージ日時: 2026年03月26日 16:49:32(UTC)
  • ラベル: arch-wasm area-Build-mono os-browser

概要

WebAssembly ブートコンフィグのカスタマイズ用公開 API を削除するPRです。MSBuild プロパティ(WasmInlineBootConfigWasmBootConfigFileName)と TypeScript API の withConfigSrc メソッドを廃止し、デフォルトの埋め込みブートコンフィグまたはユーザー独自の実装に統一します。タイムアウト問題(#124947)の解決を目指しています。

変更内容

  • TypeScript API: withConfigSrc メソッドと configSrc を公開 API から削除;内部実装では configSrc をサポート継続
  • MSBuild プロパティ: WasmInlineBootConfig および WasmBootConfigFileName の公開プロパティ参照を削除;内部デフォルト値は変更なし
  • ブートコンフィグローディング: ファイルローディングパス(loadBootConfigreadBootConfigResponse など)を削除;コンフィグは常に埋め込み状態に
  • テスト基盤: OverrideBootConfigName テストケース、関連テストアセット、テストインフラの BootConfigFileName 参照をすべて削除

パフォーマンスへの影響

影響なし

関連Issue

#124947

その他

  • 破壊的変更:公開 MSBuild プロパティと withConfigSrc API は削除されるため、これらに依存するアプリケーションは対応が必要です
  • 変更はブラウザ WASM ランタイムと関連テスト基盤に限定
  • 内部実装では依然として configSrc をサポートしており、SDK は内部デフォルト値で動作継続

#125566 [wasm] Bump chrome for testing - linux: 146.0.7680.80, windows: 146.0.7680.80

  • 作成者: @github-actions[bot]
  • 作成日時: 2026年03月15日 00:12:44(UTC)
  • マージ日時: 2026年03月26日 10:44:06(UTC)
  • ラベル: arch-wasm area-Infrastructure-mono

概要

WebAssembly (WASM) テスト環境で使用する Chrome for Testing のバージョンを 146.0.7680.80 に更新しました。Linux と Windows の両プラットフォーム向けのバージョン仕様が更新されています。

変更内容

  • eng/testing/BrowserVersions.props: Chrome for Testing のバージョン番号を 146.0.7680.80 に更新(Linux・Windows 両プラットフォーム)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

自動化されたバージョン更新(github-actions[bot]による PR)


#125557 Add openbsd non-portable probing

  • 作成者: @am11
  • 作成日時: 2026年03月14日 13:55:51(UTC)
  • マージ日時: 2026年03月26日 18:02:47(UTC)
  • ラベル: area-Host community-contribution os-openbsd

概要

OpenBSD向けのネイティブビルドサポートを追加するパッチです。get_current_os_rid_platformフォールバックコードを実装し、OpenBSDでのクロスコンパイルビルド(./build.sh host.native --cross --os openbsd --arch x64)を成功させます。将来的には#125076のランディング後に削除予定のコードです。

変更内容

  • src/native/corehost/hostmisc/pal.unix.cpp: OpenBSD向けのプラットフォーム検出ロジックを追加(+26/-1)
    • OpenBSD固有のRID(Runtime Identifier)プラットフォーム判定処理を実装
    • Cライブラリのバージョンレスシンボリックリンク対応により、cmake/clangが非fPICのlibc.a へのフォールバックを回避可能に

パフォーマンスへの影響

影響なし

関連Issue

なし

その他


#124498 Fix TokenBucketRateLimiter AttemptAcquire(0) with fractional tokens

  • 作成者: @apoorvdarshan
  • 作成日時: 2026年02月17日 07:09:32(UTC)
  • マージ日時: 2026年03月26日 03:41:05(UTC)
  • ラベル: area-System.Threading community-contribution

概要

TokenBucketRateLimiter.AttemptAcquire(0) が小数トークン(例:0.5)を保持している際に誤って成功していた問題を修正。3つの可用性チェックを > 0 / != 0 から >= 1 に変更し、GetStatistics().CurrentAvailablePermitslongに切り詰め)との一貫性を確保。

変更内容

  • TokenBucketRateLimiter.cs: 3箇所の可用性チェック条件を > 0 / != 0 から >= 1 に変更
    • AttemptAcquire(0) のプローブ動作を修正し、小数トークンを利用可能な許可として扱わないようにした
  • TokenBucketRateLimiterTests.cs: リグレッションテスト AttemptAcquireZeroWithFractionalTokensReportsUnavailable を追加
    • 小数トークンが利用可能な許可として報告されないことを検証

パフォーマンスへの影響

影響なし

関連Issue

#118192

その他

なし


目次