注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #128858 [release/8.0-staging] Disable WASI CI
- #128857 Fix SPMI wasm cross-target collection and revise must-expand assert
- #128856 Stabilize finalization-sensitive tests by preventing helper inlining
- #128854 Fix incorrect result type in PalInterlockedExchange64
- #128850 Delete obsolete comment in ZLibNative.cs
- #128842 [ci-scan] Enforce KBE match-count gate; document native-assert array form
- #128841 [ci-scan] Simplify KPI tracker: counts + CI-outage signals
- #128839 [ci-scan-feedback] Strengthen occurrence thresholds, dedup search, and do-not-disable detection
- #128837 [ci-scan] Treat maintainer-closed test-disable PRs as do-not-disable signal
- #128836 JIT: Remove a TODO comment
- #128820 Guard crypto XML XSLT tests on dynamic code support
- #128819 Wasm spmi collection2
- #128814 Avoid redundant boxing in ValueTuple<T1,...,T7,TRest>
- #128805 JIT: fix x86 GC hole in stack-to-stack struct copies
- #128804 [cDAC] Return false when system assembly is null in ManagedTypeSource_1.TryResolveType
- #128784 [cDAC] Implement delegate inspection DacDbi APIs
- #128775 [backport/9.0-staging] Disable WASI CI
- #128763 [mobile] Switch iOS device test legs in runtime.yml to simulators
- #128762 [browser][CoreCLR] more Wasm.Build.Tests
- #128760 [ci-scan] Improve test-disable prompt: ActiveIssue overload and referenced-issue checks
- #128752 Fix race between zlib Inflate/Deflate and Dispose
- #128748 Skip preallocation and use sparse-aware extraction for GNU sparse tar entries
- #128740 Enable -fstack-protector-strong unconditionally
- #128722 Ensure that applicable intrinsics have their ranges tracked by vn/assertionprop/rngchk
- #128683 JIT: Unify LowerBlockStore for init across targets
- #128664 JIT: Preserve async continuation arg across EnC remap
- #128463 [cDAC] Implement DacDbi heap walking
- #128281 [Diagnostics] Add in-proc crash report watchdog
- #128245 Linux SslStream: custom BIO_METHOD over managed buffer windows
- #128240 [release/10.0] Update dependencies from dotnet/icu
- #128204 [ci-scan] Add missing crossgen2 pipelines to triage workflow
- #128091 JIT: Enable
fgOptimizeRelationalComparisonWithCastsfor EQ/NE - #127461 Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2987866
- #126570 [release/10.0] Update dependencies from dotnet/xharness
- #126495 [release/8.0-staging] Update dependencies from dotnet/runtime-assets
#128858 [release/8.0-staging] Disable WASI CI
- 作成者: @Copilot
- 作成日時: 2026年06月01日 16:14:58(UTC)
- マージ日時: 2026年06月01日 19:09:12(UTC)
- ラベル: Servicing-approved arch-wasm area-Infrastructure-mono os-wasi
概要
WASI CI環境におけるライブラリの互換性問題に対応するため、8.0-stagingブランチで WASI関連のCI テストをコメントアウトするバックポート。Ubuntu 26.04のイメージ更新により、wasi-sdk のwasm-ldが動的にリンクするlibxml2.so.2がlibxml2.so.16に名前変更されたことで、既にWASI CI ジョブが破損しているため、これらのテストを一時的に無効化します。
変更内容
eng/pipelines/runtime.yml: WASI smoke testsおよびsimple-wasm-build-testsをコメントアウト(+22行/-21行)eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml: WASI smoke tests、simple-wasm-build-tests、およびオプションのWASI library testsをコメントアウト(+38行/-35行)
パフォーマンスへの影響
影響なし。CI パイプラインの変更で、ランタイム動作への影響はありません。
関連Issue
#128772
#128775 (main ブランチの元PR)
その他
- 本変更は9.0-stagingブランチで既に実施されたWASI CI無効化の8.0-stagingへのバックポート
- 本PR は既に破損しているCI ジョブを無効化するもので、ランタイムコードに変更なし
- リスク低:プロダクションコード非対象、既に失敗しているCI ジョブの無効化のみ
- パッケージ変更なし
#128857 Fix SPMI wasm cross-target collection and revise must-expand assert
- 作成者: @AndyAyersMS
- 作成日時: 2026年06月01日 15:37:14(UTC)
- マージ日時: 2026年06月01日 21:02:52(UTC)
- ラベル: area-CodeGen-coreclr
概要
SPMI (SuperPMI) のWebAssembly クロスターゲット収集時における問題を修正します。getClassGClayout で host のポインタサイズではなく target のポインタサイズを使用するよう修正し、importer で処理されていない must-expand intrinsic に対して NYI_WASM アサートを追加します。
変更内容
- src/coreclr/tools/superpmi/superpmi-shim-collector/icorjitinfo.cpp:
getClassGClayoutの実装を修正し、ターゲットのポインタサイズを適切に参照するよう変更(+19行) - src/coreclr/jit/importercalls.cpp: 処理されていない must-expand intrinsics に対して NYI_WASM アサートを追加(+4行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更は SPMI のクロスターゲット(特に WASM ターゲット)での JIT コンパイレーションデータ収集の正確性を改善し、ターゲット固有のメモリレイアウト情報を正しく処理することを目的としています。
#128856 Stabilize finalization-sensitive tests by preventing helper inlining
- 作成者: @Copilot
- 作成日時: 2026年06月01日 15:07:44(UTC)
- マージ日時: 2026年06月01日 19:54:28(UTC)
- ラベル: area-System.Diagnostics.Process test-enhancement
概要
複数のファイナライゼーション関連テストがJITストレス環境下でCreateAndRelease()ヘルパーがインライン化されることで失敗する問題を解決します。[MethodImpl(MethodImplOptions.NoInlining)]属性を追加してインライン化を明示的に防止し、オブジェクトのライフタイム管理と最終化タイミングを安定させます。
変更内容
- DbCommandTests.cs, DbConnectionTests.cs, ProcessTests.cs, PingTest.cs: ファイナライゼーション検証用ヘルパーメソッドに
[MethodImpl(MethodImplOptions.NoInlining)]属性を追加 - System.Runtime.CompilerServices: 各テストファイルに
using System.Runtime.CompilerServices;を追加してサポート
パフォーマンスへの影響
影響なし。テストコードのみへの変更で、本体コードには影響しません。インライン化の防止はテストの安定性向上を目的としており、パフォーマンス面への懸念はありません。
関連Issue
なし
その他
このPRはテストの堅牢性向上を目的とした変更です。JITストレス環境やインライン化の最適化が有効な環境下で、オブジェクトのライフタイムが予期せず拡張されてしまうことを防ぎます。複数のライブラリテストが統一的なアプローチで対応されており、ファイナライゼーション依存テストの一般的なベストプラクティスを示しています。
#128854 Fix incorrect result type in PalInterlockedExchange64
- 作成者: @filipnavara
- 作成日時: 2026年06月01日 14:57:20(UTC)
- マージ日時: 2026年06月01日 20:29:37(UTC)
- ラベル: community-contribution area-NativeAOT-coreclr
概要
Unix NativeAOT環境におけるPalInterlockedExchange64マクロの戻り値の型を修正しました。ローカル変数resultをint32_tからint64_tに変更することで、64ビット値が32ビットに切り詰められる問題を解決します。このマクロはイベントトレーシングとYieldProcessorNormalizationで使用されています。
変更内容
- src/coreclr/nativeaot/Runtime/unix/PalInline.h:
PalInterlockedExchange64マクロのローカル変数resultをClangパスと非Clangパスの両方でint32_tからint64_tに変更(+2/-2行)
パフォーマンスへの影響
影響なし。この修正は正確性の改善であり、パフォーマンス変化は想定されません。
関連Issue
なし
その他
Unix NativeAOT環境での64ビット値の截断バグを修正する内部実装の変更です。公開APIへの影響はありません。
#128850 Delete obsolete comment in ZLibNative.cs
- 作成者: @Copilot
- 作成日時: 2026年06月01日 14:36:27(UTC)
- マージ日時: 2026年06月01日 20:04:21(UTC)
- ラベル: area-System.IO.Compression
概要
ZLibNative.cs内の時代遅れのコメントブロックを削除するメンテナンスPRです。"Dev12"への言及と存在しないreleaseHandleFailed MDAについての説明コメントを削除し、コードの鮮度を向上させます。
変更内容
- src/libraries/Common/src/System/IO/Compression/ZLibNative.cs:
- ネストされた型設計の根拠を説明していたレガシーコメントブロック(
/** ... */)を削除 ZLibStreamHandleのSafeHandle使用理由を説明していた<summary>タグを削除(.NET 5+で存在しないreleaseHandleFailedMDAへの言及を含む)- 削除行数:30行
- ネストされた型設計の根拠を説明していたレガシーコメントブロック(
パフォーマンスへの影響
影響なし(コメント削除のみ)
関連Issue
なし
その他
- 削除されたコメントは現在の実装設計と一致していない歴史的背景を持つ情報
releaseHandleFailedMDAsは.NET 5以降では存在・参照されていない- コード動作に変更なし、ドキュメント整理のみ
#128842 [ci-scan] Enforce KBE match-count gate; document native-assert array form
- 作成者: @kotlarmilos
- 作成日時: 2026年06月01日 10:38:27(UTC)
- マージ日時: 2026年06月01日 14:31:03(UTC)
- ラベル: area-Infrastructure
概要
CI失敗スキャンワークフローに対して、KBE(Known Build Error)を発行する前に<!-- ci-scan-match-count: <N> hits in failure.log -->マーカーの存在と正の値を検証する事前チェックゲートを追加します。これにより、マーカーが欠落している(またはN==0の)不完全なKBEが誤ってファイルされるのを防ぎます。
変更内容
.github/workflows/ci-failure-scan.md: Branch AのKBE発行処理に対して、create_issue呼び出し前にマッチカウントマーカーの検証ゲートを追加。マーカーが欠落または0の場合は発行をスキップし、skipped: KBE body missing positive match-count markerを記録します。- ネイティブアサート/JITアサート署名のケースについて、エージェントが正規表現ではなく配列形式のアンカー(xunitアンカー + アサートアンカー)を使用するよう明示的にドキュメント化。
パフォーマンスへの影響
影響なし
関連Issue
#128544(クローズ、マッチせず) #128827(オープン、マッチしない)
その他
- 本変更は既存のルール(KBE検証チェック#7の要件)を参照しており、新しいポリシーの導入ではなく既存要件の強制化です。
- ネイティブアサート失敗(corerun.exe stdout に出力)はBuildAnalysisがインデックスするログセットに含まれていないため、マッチカウントマーカーによる事前検証が重要です。
- バックフィル対応(#128544/#128827の修正)は本PRの対象外です。
#128841 [ci-scan] Simplify KPI tracker: counts + CI-outage signals
- 作成者: @kotlarmilos
- 作成日時: 2026年06月01日 10:35:33(UTC)
- マージ日時: 2026年06月01日 12:20:55(UTC)
- ラベル: area-Infrastructure
概要
CI失敗スキャンのKPIトラッカー生成ロジック(Step 7)を簡略化し、過度に複雑な統計計算(Wilson信頼区間など)を削除して、運用者が必要とする基本的なカウント指標とCI障害シグナルに特化させました。スキャナー運用開始から30日未満という初期段階の実運用フィードバックに基づいた改善です。
変更内容
.github/workflows/ci-failure-scan-feedback.md: KPIトラッカー仕様の全面改訂- 削除: Wilson95%信頼下限による受け入れ分類、90日ウィンドウ、CI環境セクション(tally抽出依存)、カバレッジ比率、KBEまでの時間パーセンタイル、アーティファクト別ルーブリック
- 保持: トラッカーブートストラップ、ウィンドウキャッシング、スコープ内検索、整合性ゲート
- 追加: 5つの固定閾値ベースの障害シグナル(🔴/🟢表示):
- 新規KBE急増(日次 > 直近30日中央値の2倍、最小3件)
- ビルド破損スパイク(24時間以内に2件以上)
- マルチパイプライン障害(24時間以内に3個以上の異なるパイプライン)
- 運用者クローズ後のKBE再報告(7日以内に任意)
- 誤クローズ率(30日間でN≥10のとき30%以上)
- 新しいレイアウト: Activity(過去7日)→ Quality(過去30日)→ Outage signals(分析対象CI)の3セクション構成
パフォーマンスへの影響
影響なし(設定ドキュメント変更のみ)
関連Issue
その他
GitHub Copilot CLIの支援を受けて作成されました。この変更は内部的なCI監視ワークフロー仕様であり、公開APIや製品コードには影響しません。
#128839 [ci-scan-feedback] Strengthen occurrence thresholds, dedup search, and do-not-disable detection
- 作成者: @Copilot
- 作成日時: 2026年06月01日 10:16:18(UTC)
- マージ日時: 2026年06月01日 12:27:46(UTC)
- ラベル: area-Infrastructure
概要
CI Failure Scanner ワークフロー プロンプト(.github/workflows/ci-failure-scan.md)を強化し、Known Build Error (KBE)の検出、安定性の判定基準、クローズ済みKBEに対するテスト無効化PRの回避をより厳密にします。ドキュメントのみの変更です。
変更内容
.github/workflows/ci-failure-scan.md: ワークフロープロンプトの以下3つの項目を更新- Variant-form dedup guidance (Step 4.2-4.6): 配列形式と文字列リテラル形式の両方のErrorMessageバリアントを検索し、既存KBEの検出精度を向上
- Distinct-builds stable threshold (Branch A): "stable"の定義を強化し、同じビルドID内のリトライやワークアイテムではなく、複数の異なるビルドにまたがって
>= 2回の発生が必須に。単一ビルドでの発生は"not yet stable"としてスキップ - Linked-KBE open check (Branch B): テスト無効化PRを発行する前に、リンク済みKBEが
open状態であることを再確認し、クローズ済みKBEに対する孤立したPRの発行を防止
パフォーマンスへの影響
影響なし
関連Issue
その他
本変更は.github/workflows/ci-failure-scan.mdのドキュメント更新のみで、ランタイムやコンパイラのコード変更はありません。既にランディング済みの#128760のActiveIssue 4パラメータオーバーロードと参照済みissueの無効化検出に続く、残りの3つの項目を対象としています。
#128837 [ci-scan] Treat maintainer-closed test-disable PRs as do-not-disable signal
- 作成者: @kotlarmilos
- 作成日時: 2026年06月01日 10:03:05(UTC)
- マージ日時: 2026年06月01日 10:24:40(UTC)
- ラベル: area-Infrastructure
概要
CI失敗スキャナーの判定ロジック(Step 4.7)を拡張し、メンテナーが最近クローズした未マージの[ci-scan]テスト無効化PRを「無効化禁止」シグナルとして扱うようにしました。同じテストまたはKBEに対して30日以内にメンテナーがクローズしたPRがある場合、新しい証拠(メンテナーコメント等)がない限り、再ファイリングを防止します。
変更内容
.github/workflows/ci-failure-scan.md: Step 4.7を拡張し、最近(30日以内)メンテナーがクローズした未マージの[ci-scan]テスト無効化PRを無効化禁止シグナルとして認識するロジックを追加
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更は、PR #128793で発生した問題に対応しています。メンテナーが明確に無効化に反対(PR #128737でクローズ)した直後に、同じテストの無効化PRが再度ファイリングされるケースを防止します。判定に必要な証拠は:
- メンテナーコメント(KBEイシューまたはPR)による新しい無効化承認
- 明らかに異なる失敗シグネチャを示す新しい証拠
#128836 JIT: Remove a TODO comment
- 作成者: @jakobbotsch
- 作成日時: 2026年06月01日 09:55:00(UTC)
- マージ日時: 2026年06月01日 13:01:46(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITのasync変換処理における尾部マージ/再利用チェック(AsyncTransformation::IsReusableSuspension)のTODOコメントを削除し、継続レイアウト等価チェックが必要な具体的な理由を説明するコメントに置き換えました。async/awaitのコード生成時に、異なる制御フローパスでローカル変数の生存期間が異なる場合でも、一部のパスのみでsave操作を実行する必要があるケースを記述しています。
変更内容
- src/coreclr/jit/async.cpp: TODO コメント(2行)を削除し、継続レイアウト等価チェック(
ContinuationLayoutBuilder::Equals)が必要な理由を説明する詳細なコメント(4行)に置き換え- ref引数を含むメソッド呼び出しと異なる制御フロー分岐の組み合わせで、liveness とsave-setの不一致が発生するケースについて記載
パフォーマンスへの影響
影響なし(コメントの変更のみ、ロジック変更なし)
関連Issue
なし
その他
このPRは#128836に対応するもので、async/await時のJIT最適化における既知の制限事項を適切に文書化したものです。継続レイアウト等価チェックは、複雑な制御フローを伴うasync メソッドのコード生成における安全性の保証として機能しています。
#128820 Guard crypto XML XSLT tests on dynamic code support
- 作成者: @Copilot
- 作成日時: 2026年05月31日 21:26:10(UTC)
- マージ日時: 2026年06月01日 11:49:47(UTC)
- ラベル: area-System.Security
概要
tvOS arm64などの動的コード生成非対応プラットフォームでのXSLT関連テスト失敗を解決するPR。XslCompiledTransformが動的コード支援を必要とするため、暗号化検証テストに到達する前にNotSupportedExceptionが発生していた問題を、テストを条件付きで実行することで解決。
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsReflectionEmitSupported))]
変更内容
src/libraries/System.Security.Cryptography.Xml/tests/SignedXmlTest.cs:SignedXml_EncryptedDataWithInfiniteXslTransformテストを動的コード支援ガード付きに変更src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs:EncryptedKey_InfiniteLoopXsltTransformとEncryptedXml_BillionLaughsXsltTransformテストを動的コード支援ガード付きに変更
3つのXSLT関連セキュリティテストを[Fact]から[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsReflectionEmitSupported))]に変更し、プラットフォーム能力に応じた条件付き実行を実装。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本変更はテスト修正のみで、ランタイムやライブラリの公開APIに影響なし。動的コード非対応プラットフォーム上ではテストがスキップされるため、既存のセキュリティテスト(CryptographicException検証)カバレッジは対応プラットフォームで継続される。
#128819 Wasm spmi collection2
- 作成者: @AndyAyersMS
- 作成日時: 2026年05月31日 14:44:34(UTC)
- マージ日時: 2026年06月01日 22:49:20(UTC)
- ラベル: area-CodeGen-coreclr
概要
WebAssembly向けCoreLibのSuperPMI収集機能を有効化するため、インフラストラクチャを更新したPR。wasm対応のcrossgen2コレクション環境を整備し、正しいホストJITビットとCoreLibディレクトリ構成をセットアップします。
変更内容
- superpmi-collect-pipeline.yml:
clr.wasmjitのx64ホストでのビルド追加、browser/wasm向けのCoreLibビルドジョブ追加、wasm corelib向けcrossgen2コレクションジョブの新規追加(+49行) - run-superpmi-collect-job.yml: wasm CoreLibのInputDirectoryを
browser.wasm.Release/ILサブディレクトリに指定(Windows/非Windows両対応)(+4/-3行) - superpmi_collect_setup.py: wasm入力ディレクトリレイアウトに関するコメント更新(+1/-1行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更は内部ビルド・テスト基盤の更新であり、SuperPMI(Super Performance Microbenchmark Infrastructure)のWebAssemblyターゲット対応を整備するもの。public APIや開発者向けの機能追加ではなく、.NET runtimeのコンパイル基盤改善です。
#128814 Avoid redundant boxing in ValueTuple<T1,...,T7,TRest>
- 作成者: @prozolic
- 作成日時: 2026年05月31日 12:55:13(UTC)
- マージ日時: 2026年06月01日 15:39:51(UTC)
- ラベル: area-System.Runtime community-contribution
概要
ValueTuple<T1,...,T7,TRest> のメソッドでパターン変数キャプチャを使用し、冗長なボックス化を排除する変更です。is IValueTupleInternal rest パターンマッチングにより、参照型フィールドを含む ValueTuple<TRest> がキャストされる際のボックス化を回避し、GetHashCode、ToString、ITuple.Length、ITuple インデクサーのヒープアロケーションを削減します。
変更内容
- src/libraries/System.Private.CoreLib/src/System/ValueTuple.cs
is IValueTupleInternal型チェック後の明示的なキャスト((IValueTupleInternal)Rest)をパターン変数キャプチャis IValueTupleInternal restに置き換え- 影響範囲:
GetHashCode、ToString、IValueTupleInternal.ToStringEnd、ITuple.Length、ITuple インデクサー - 実装変更のみで、公開API への変更なし
パフォーマンスへの影響
参照型フィールドを含む8要素タプル(ValueTuple<T,T,T,T,T,T,T,ValueTuple<string>>)で顕著な改善:
- GetHashCode_Str8: 13.155ns → 8.563ns(35%削減)、割当ゼロ(24B → 0B)
- ToString_Str8: 76.118ns → 71.267ns(6%削減)、割当削減(280B → 256B)
- Length_Str8: 10.711ns → 6.129ns(43%削減)、割当削減(80B → 56B、30%削減)
- Indexer_Str8: 11.339ns → 6.356ns(44%削減)、割当削減(80B → 56B、30%削減)
int型のみのタプル(GetHashCode_Int8)では小幅改善(5%程度)。コンパイラの最適化により、パターン変数キャプチャの方が直接キャストより効率的なコード生成となっています。
関連Issue
なし
その他
なし
#128805 JIT: fix x86 GC hole in stack-to-stack struct copies
- 作成者: @EgorBo
- 作成日時: 2026年05月30日 17:13:23(UTC)
- マージ日時: 2026年06月01日 11:28:54(UTC)
- ラベル: area-CodeGen-coreclr
概要
x86 JIT(JIT32_GCENCODER)のスタック間struct copyにおけるGC安全性の脆弱性を修正します。スタックターゲットのstruct copyでLowerCopyBlockStoreが無条件にdoCpObj = falseを設定していたため、GC対応でない単純な展開コピー(genCodeForCpBlkUnroll)を使用され、スクラッチレジスタの参照報告がないまま実行されていました。GC発生時にスクラッチレジスタが陳腐化し、それがローカル変数に格納されることで、GCが既に解放済みオブジェクトを指すbyrefと誤認識する問題が発生していました。
修正により、x86はGC対応のCpObjパス(小さいstructはスロット単位の分解、大きいstructはバルク書き込みバリア)に留まります。
変更内容
- src/coreclr/jit/lower.cpp:
LowerCopyBlockStoreのisNotHeapショートカットを!JIT32_GCENCODERでガード。LowerBlockStoreAsGcBulkCopyCallの!IsAddressNotOnHeapアサートを削除し、ヒープ外ターゲットもバルク書き込みバリアヘルパーで処理可能に。 - src/tests/JIT/Regression/JitBlue/Runtime_128801/Runtime_128801.cs: Span copyとTask.WhenAll stress testを含む回帰テストを追加。
- src/tests/JIT/Regression/Regression_ro_2.csproj: テストプロジェクト参照を追加。
パフォーマンスへの影響
影響なし。修正により、x86でのstruct copyはGC対応パスを使用するため、若干オーバーヘッド増の可能性がありますが、GC安全性が優先されます。
関連Issue
その他
- 本修正はx86(JIT32)環境に限定された問題です。
- GC実行中のbyref stalenesを防ぐことが主目的で、セキュリティ脆弱性というより機能正確性の修正です。
- テストはTieredCompilationおよびGCStressのバリエーション実行を含むよう設定されています。
#128804 [cDAC] Return false when system assembly is null in ManagedTypeSource_1.TryResolveType
- 作成者: @Copilot
- 作成日時: 2026年05月30日 16:54:04(UTC)
- マージ日時: 2026年06月01日 13:50:12(UTC)
- ラベル: area-Diagnostics-cdac
概要
cDAC(Compact Diagnostics and Analytics Contracts)の管理型リソース解決機能を強化し、ManagedTypeSource_1.TryResolveTypeがシステムアセンブリ未初期化時(スタートアップ初期段階や部分的に初期化されたターゲットなど)に例外をスローするのを防ぎます。nullシステムアセンブリを「型解決不可」として扱い、ArgumentNullExceptionの発生を回避します。
TargetPointer systemAssembly = loader.GetSystemAssembly();
if (systemAssembly == TargetPointer.Null)
{
mdReader = null;
return false;
}
ModuleHandle moduleHandle = loader.GetModuleHandleFromAssemblyPtr(systemAssembly);
変更内容
- src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/ManagedTypeSource_1.cs
ILoader.GetSystemAssembly()の戻り値がnullの場合、GetModuleHandleFromAssemblyPtr()の呼び出しを行わずに早期リターン(mdReader = null; return false;)するガード条件を追加- 型解決失敗をnull参照例外ではなく正常な型未解決ケースとして処理
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更により、スタートアップ初期段階でのIsLeftSideInitializedの呼び出し時に発生していたArgumentNullExceptionが解消されます。デバッガ初期化時の堅牢性が向上し、部分的に初期化されたターゲットに対するダイアグノスティクス処理がより安定して動作するようになります。
#128784 [cDAC] Implement delegate inspection DacDbi APIs
- 作成者: @Copilot
- 作成日時: 2026年05月29日 21:43:51(UTC)
- マージ日時: 2026年06月01日 23:50:20(UTC)
- ラベル: area-Diagnostics-cdac
概要
デリゲート検査用のDacDbi API(GetDelegateFunctionDataとGetDelegateTargetObject)をマネージド cDAC層に実装します。ネイティブ層でGetDelegateTypeを削除し、両APIのシグネチャを簡略化した上での実装です。新しいIObject.GetDelegateInfoコントラクトメンバーとDelegateデータ記述子を追加し、デリゲートの種類(クローズド/オープン/マルチキャスト/ラッパー)に応じた分岐ロジックを実装します。
変更内容
- ネイティブ層:
dacdbi.idlとdacdbiinterface.hでGetDelegateTypeを削除、両APIのパラメータを簡略化。dacdbiimpl.cppでAPI実装を書き換え。 - cDACコントラクト:
object.hにcdac_data<DelegateObject>を追加(Target/MethodPtr/MethodPtrAux/InvocationCountオフセット定義)、datadescriptor.incで新Delegate型を定義、IObject.GetDelegateInfoメンバーを追加。 - マネージド DacDbi実装:
DacDbiImplに両APIを実装し、try/catch例外処理とデバッグ検証(従来実装との比較)を含める。IsDelegateHelperヘルパーを追加。 - テスト: モックデリゲートオブジェクトレイアウトと4つのxUnit理論テスト(クローズド/オープン/マルチキャスト)を追加。
- エラー定義: 新しいHR定数
CORDBG_E_UNSUPPORTED_DELEGATEを追加。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 本実装は内部デリゲート検査テストに合格しており、現在のサポート制限(ICD境界で顕在化)を反映しています。
- ネイティブ層での
GetDelegateTypeAPI削除に伴い、マネージドIDacDbiInterface.csのvtableスロットも削除されます。 - 変更は公開API(
IObject.GetDelegateInfo)とそれをサポートする内部実装から構成されています。
#128775 [backport/9.0-staging] Disable WASI CI
- 作成者: @Copilot
- 作成日時: 2026年05月29日 16:16:14(UTC)
- マージ日時: 2026年06月01日 13:52:35(UTC)
- ラベル: Servicing-approved arch-wasm test-enhancement area-Infrastructure-mono os-wasi
概要
Ubuntu 26.04でのlibxml2.soライブラリ名変更により、WASI SDKのwasm-ldが破損し、9.0-stagingブランチのCI/CD パイプラインが失敗している問題に対応するパッチです。WASI CI ジョブを無効化してローリングビルドをアンブロックします。
変更内容
eng/pipelines/runtime.yml
MonoAOTOffsetsプラットフォームリストからwasi_wasmをコメントアウト- 3つの
CrossAOT_Monoジョブ(Linux/Windows/macOS)のMonoCrossAOTTargetOSおよびmonoCrossAOTTargetOSからwasiを削除 - 各ジョブの
dependsOnリストからbuild_wasi_wasm_linux_release_MonoAOTOffsetsを削除
eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.yml
- WASI AOTライブラリテスト(ローリング/PR ビルド)をコメントアウト
- WASI smoke テスト、
simple-wasm-build-tests、オプション WASI ライブラリテストをコメントアウト
パフォーマンスへの影響
影響なし
関連Issue
その他
- CI のみの変更で、ランタイムコード、ビルド対象、MSBuild ターゲットには影響なし
- すでに失敗しているCI ジョブの無効化のため、リスク低
- .NET 10ブランチでの同等修正とは異なり、
FailBuildMSBuildターゲットは追加されていない
#128763 [mobile] Switch iOS device test legs in runtime.yml to simulators
- 作成者: @kotlarmilos
- 作成日時: 2026年05月29日 12:51:45(UTC)
- マージ日時: 2026年06月01日 09:38:43(UTC)
- ラベル: area-Infrastructure os-ios
概要
iOS デバイス Helix キューのインフラストラクチャ問題(#123796)により、runtime.yml パイプラインの iOS デバイステスト3本の脚を iOS シミュレータ(arm64)に切り替えるもの。テストカバレッジを継続しながら、デバイスキューへの依存を回避する一時的な対応です。
変更内容
- eng/pipelines/runtime.yml:
- Mono Full-AOT + AggressiveTrimming スモークテスト脚を
ios_arm64からiossimulator_arm64に変更 - NativeAOT スモークテスト脚を
ios_arm64からiossimulator_arm64に変更 - CoreCLR スモークテスト脚を
ios_arm64からiossimulator_arm64に変更 - 一時的な対応として、その理由をコメントで記載
- Mono Full-AOT + AggressiveTrimming スモークテスト脚を
パフォーマンスへの影響
影響なし
関連Issue
その他
このパイプライン変更はビルド・テストインフラストラクチャの調整であり、ランタイムやコンパイラのコード変更ではありません。iOS デバイスキューの問題が解決された後は、デバイステストへの復帰を想定しています。
#128762 [browser][CoreCLR] more Wasm.Build.Tests
- 作成者: @pavelsavara
- 作成日時: 2026年05月29日 12:12:15(UTC)
- マージ日時: 2026年06月01日 14:10:02(UTC)
- ラベル: arch-wasm area-Host os-browser
概要
WebAssembly (Wasm) ビルドテストの拡充と関連するランタイム実装の改善。アプリケーション環境設定、遅延アセンブリ読み込み、およびアプリ設定機能に関するテストケース追加と、WebAssemblyランタイムの資産管理・設定処理の改善を含みます。
変更内容
- BuildWasmAppsJobsListCoreCLR.txt: テストシナリオリストに2行追加
- AssemblyLoadContext.cs: 遅延アセンブリ読み込み関連の処理を20行追加(アセンブリ読み込み前の条件判定機能の拡張)
- assemblynative.cpp: ネイティブアセンブリ読み込みロジック修正(3行追加、1行削除)
- LazyLoadingTests.cs・SatelliteLoadingTests.cs: テストケースの軽微な修正
- JavaScript loader関連:
- assets.ts: 資産管理ロジック拡張(9行追加、2行削除)
- config.ts: 設定処理追加(2行追加)
- run.ts: ランタイム実行フロー改善(26行追加、3行削除)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本PRはWebAssemblyプラットフォーム向けのランタイム改善で、遅延アセンブリ読み込み機能とアプリケーション設定管理の機能強化を中心としています。JavaScriptローダー側の処理フローも対応して改善されており、Wasm環境での資産読み込み・設定プロセスの信頼性向上が目的と考えられます。
#128760 [ci-scan] Improve test-disable prompt: ActiveIssue overload and referenced-issue checks
- 作成者: @kotlarmilos
- 作成日時: 2026年05月29日 11:54:17(UTC)
- マージ日時: 2026年06月01日 09:39:00(UTC)
- ラベル: area-Infrastructure
概要
CI障害スキャナーワークフローのプロンプトを改善し、以下の3点を強化しました:
- Step 4.7で参照されたIssueのbodyと最新5コメントを読み込み、ルートコーズIssue上の「disable不可」シグナルを検出
ActiveIssueの完全な4パラメータオーバーロード(string, TestPlatforms, TargetFrameworkMonikers, TestRuntimes)を文書化し、パラメータの順序入れ替え防止を明示- テスト無効化PR用のプリコンパイル検証チェックリストを追加
変更内容
.github/workflows/ci-failure-scan.md- Step 4.7の検出ロジックを強化:参照されたIssue(例:
refs #N)のbodyと最新5コメントを読み込むことで、メンテナンスの「disable不可」シグナルがKBE候補をオーバーライドするように対応 ActiveIssueの4パラメータオーバーロードを新規文書化し、TestRuntimes値を誤ってTargetFrameworkMonikersスロットに配置しないよう明示的警告を追加- テスト無効化PR向けの3項目プリコンパイル検証チェックリストを追加
- Step 4.7の検出ロジックを強化:参照されたIssue(例:
パフォーマンスへの影響
影響なし(ワークフロー定義の改善のため)
関連Issue
その他
gh aw compileは不要。スキャナーワークフローは{{#runtime-import}}経由で実行時にこのファイルをロードします- 変更はプロンプトのみであり、ランタイムコードへの直接的な影響はありません
#128752 Fix race between zlib Inflate/Deflate and Dispose
- 作成者: @rzikm
- 作成日時: 2026年05月29日 10:37:53(UTC)
- マージ日時: 2026年06月01日 14:23:30(UTC)
- ラベル: area-System.IO.Compression
概要
Inflater/Deflaterの並行処理時のレース条件を修正するPR。Disposeがネイティブzlibの呼び出しと同期されていないため、あるスレッドでInflate/Deflate実行中に別スレッドでDisposeが呼ばれると、z_streamがメモリ解放されてuse-after-freeクラッシュが発生する問題を修正。DangerousAddRef/DangerousReleaseを用いてネイティブ呼び出しをブラケット化し、全てのインフライト呼び出しが完了するまでReleaseHandleの実行を遅延させる。
変更内容
- src/libraries/Common/src/System/IO/Compression/ZLibNative.cs:
Inflate、InflateReset2_、Deflateメソッドをネイティブ呼び出しの前後でDangerousAddRef/DangerousReleaseでブラケット化。SafeHandleのリファレンスカウント機構により、不要なEnsureNotDisposedチェックを削除。DeflateEnd、InflateEnd、InflateInit2_、DeflateInit2_は初期化またはDispose経路のみからの呼び出しのため変更なし。
パフォーマンスへの影響
影響なし。並行処理の安全性向上であり、パフォーマンス低下の報告なし。
関連Issue
その他
この変更はSystem.IO.CompressionおよびSystem.Net.WebSocketsで使用される共有zlibストリームハンドルの堅牢性を向上させる。SafeHandleの設計目的(リファレンスカウント経由のリソース保護)を正規の方法で活用した修正。
#128748 Skip preallocation and use sparse-aware extraction for GNU sparse tar entries
- 作成者: @rzikm
- 作成日時: 2026年05月29日 09:51:25(UTC)
- マージ日時: 2026年06月01日 08:05:47(UTC)
- ラベル: area-System.Formats.Tar
概要
GNU sparse tar エントリの抽出時に、ディスク領域の無駄な事前割り当てを回避し、スパースファイル対応の抽出を実装しました。GNU sparse エントリは実サイズを報告しますが、アーカイブには圧縮されたペイロードのみを格納しているため、従来の実装では数KBのアーカイブから数GBのディスク領域を無駄に予約していました。本変更により、実装された領域のみを書き込み、ファイルシステムがサポートしている場合はホール(穴)を保持します。
変更内容
- TarEntry.cs: GNU sparse エントリの抽出パスを変更し、
FileStreamOptions.PreallocationSizeをスキップ - GnuSparseStream.cs: スパースセグメントをコピーするSync/Async ヘルパーメソッド を追加
- TarEntry.Windows.cs:
FSCTL_SET_SPARSEを使用してファイルをスパースマークするヘルパーを追加 - TarEntry.Unix.cs: Unix用のスパースマーキング実装(No-op)
- Interop.DeviceIoControl.cs: Windows
FSCTL_SET_SPARSE定数を追加 - System.Formats.Tar.csproj: 共有
DeviceIoControlinterop ソースをインクルード - TarReader.SparseFile.Tests.cs: Sync/Async スパース抽出検証テストを追加
パフォーマンスへの影響
メモリ使用量の大幅な削減: 数GBのディスク事前割り当てが回避され、数KBのアーカイブの抽出時に不要な領域予約がなくなります。
- Windows:
FSCTL_SET_SPARSEにより、NTFS でアンライトン範囲が実際のホールになり、ゼロ充填ではなく物理ストレージを節約 - Unix: 既存の EOF を超えてのシーク時にカーネルが自動的にホールを生成(スパース対応ファイルシステムの場合)
関連Issue
その他
- このPRは GitHub Copilot の支援を受けて作成されました
- Windows と Unix の両プラットフォームで動作し、スパースファイルをサポートしないファイルシステム(FAT/exFAT など)では従来と同じ動作(ゼロ充填)になります
- 新規テストスイート
ExtractToFile_SparseEntry_ExpandsCorrectlyは Sync/Async パスをカバーし、Windows ではスパースファイル属性を検証
#128740 Enable -fstack-protector-strong unconditionally
- 作成者: @Copilot
- 作成日時: 2026年05月29日 04:02:37(UTC)
- マージ日時: 2026年06月01日 15:01:09(UTC)
- ラベル: area-Infrastructure
概要
macOS/MacCatalystで長年使用されていたclang 7.0.2のバグ対応として書かれた-fstack-protectorのハードコード部分を削除し、-fstack-protector-strongを無条件に有効化します。現代的なclangおよびgccコンパイラは全て-fstack-protector-strongをサポートしているため、AppleターゲットをUnixホストの他のターゲットと揃えます。
変更内容
- eng/native/configurecompiler.cmake: macOS/MacCatalyst固有の
-fstack-protectorフォールバック処理を削除し、-fstack-protector-strong対応確認をコンパイラフラグプローブで実装(+6行/-9行)
パフォーマンスへの影響
-fstack-protector-strongは-fstack-protectorより強力なスタック保護機構を提供するため、セキュリティ面では向上する可能性があります。パフォーマンスオーバーヘッドについては本PRで言及されていません。
関連Issue
なし
その他
レビュー指摘: Copilotから、Apple固有のifブロックの終了位置に関する指摘があります。現在のコード構造では、Apple以外のUnixホストが-fstack-protector-strongを得られず、CMakeが不正なendifラベルで拒否する可能性があると指摘されています。endifをAppleブロック閉鎖の直前に移動し、その後に汎用のブラウザ/WASI以外向けプローブを開始する修正が必要と考えられます。
#128722 Ensure that applicable intrinsics have their ranges tracked by vn/assertionprop/rngchk
- 作成者: @tannergooding
- 作成日時: 2026年05月28日 19:45:19(UTC)
- マージ日時: 2026年06月01日 13:58:26(UTC)
- ラベル: area-CodeGen-coreclr
概要
CoreCLR JIT のレンジ推論ロジックを改善し、複数の intrinsic 操作がValue Numbering、Assertion Propagation、Range Check Elimination 全体で一貫したレンジ情報を提供するようにしました。PR #128677 での最適化の後退を防ぎ、非負値やレンジ情報を正しく追跡します。
変更内容
- src/coreclr/jit/valuenum.h: HW-intrinsic VN から SIMD サイズと基本型を抽出するヘルパーメソッドを追加
- src/coreclr/jit/valuenum.cpp:
IsVNNeverNegativeでビットカウント intrinsic や HW-intrinsic VNFunc を新たに認識するよう拡張 - src/coreclr/jit/rangecheck.cpp: VN ベースおよびツリーベースのレンジ計算で
GT_INTRINSICとGT_HWINTRINSICのビットカウント・抽出・要素抽出パターンに対応 - src/coreclr/jit/assertionprop.cpp: long 定数、プリミティブ intrinsic、HW intrinsic の IntegralRange モデリングを拡張
パフォーマンスへの影響
影響なし。本変更は JIT コンパイル時の最適化ロジック改善であり、レンジ情報の一貫した追跡を通じて不要な範囲チェックの削除を促進しますが、ランタイムパフォーマンスへの負の影響は想定されません。
関連Issue
その他
本 PR は JIT 最適化パスの内部実装を改善するもので、公開 API に影響はなく、破壊的変更もありません。
#128683 JIT: Unify LowerBlockStore for init across targets
- 作成者: @EgorBo
- 作成日時: 2026年05月28日 08:09:31(UTC)
- マージ日時: 2026年06月01日 11:28:42(UTC)
- ラベル: area-CodeGen-coreclr
概要
JIT コンパイラの LowerBlockStore の init-block(メモリゼロ初期化)処理を統一し、ターゲット固有の重複コードを削除しました。共有実装 LowerInitBlockStore を導入し、x86 の BlkOpKindRepInstr(rep stos/movs命令)を廃止して、他のターゲットと同じく展開またはメモリセット呼び出しに統一しています。WebAssembly は独立した実装のため除外されています。
変更内容
- lower.cpp: 共有
LowerInitBlockStore実装を追加(91行追加) - *ターゲットヘッダー(target.h)**: 各ターゲットに
FEATURE_HAS_ZERO_REGフラグを定義- arm64、riscv64、loongarch64: 1(ゼロ専用レジスタをサポート)
- x86、amd64、arm32、wasm: 0(非サポート)
- lowerarmarch.cpp、lowerxarch.cpp、lowerriscv64.cpp、lowerloongarch64.cpp: ターゲット固有の init-block 処理を削除
- lsraxarch.cpp、lsrabuild.cpp:
BlkOpKindRepInstr関連の LSRA 処理を削除 - gentree.h/cpp:
BlkOpKindRepInstrブロックストア種別を削除 - codegenxarch.cpp: x86 の rep stos/movs コード生成ヘルパーを削除(42行削除)
- compiler.h:
STRESS_MODE(STORE_BLOCK_UNROLLING)ストレスモードを削除
パフォーマンスへの影響
x86 にて性能への影響あり(BlkOpKindRepInstr 廃止により)。他のターゲットでは x86 の rep 命令廃止による差異は適用されません。影響は主にコードサイズと展開パターンの変化に限定されます。詳細なベンチマーク結果は提供されていません。
関連Issue
なし
その他
- 内部実装の変更: コンパイラ内部の JIT コード生成パスの整理であり、公開 API への影響なし
- 非破壊的変更: 既存コードの動作に影響を与えない内部リファクタリング
- WebAssembly のみターゲット固有実装を保持(完全に異なる実装のため)
#128664 JIT: Preserve async continuation arg across EnC remap
- 作成者: @tommcdon
- 作成日時: 2026年05月27日 20:42:56(UTC)
- マージ日時: 2026年06月01日 20:30:22(UTC)
- ラベル: area-Diagnostics-coreclr
概要
Edit-and-Continue (EnC) リマップ時に、非同期メソッドの継続引数がローカルフレーム領域で破棄される問題を修正します。専用のIL番号(ASYNC_CONTINUATION_ILNUM = -4)を割り当てることで、継続引数がNativeVarInfoに出現し、全プラットフォームで保持されるようにしました。この変更に伴い、MAX_ILNUMが-4から-5に変更され、NativeVarInfo エンコーディングのバイアスが調整されました。R2R メジャーバージョンはアップグレードされています。
変更内容
cordebuginfo.h: ASYNC_CONTINUATION_ILNUM定義追加とMAX_ILNUM変更(-4から-5へ)readytorun.h: R2R メジャーバージョン番号の更新lclvars.cpp: EnC下で非同期継続引数をEnC保存フレームヘッダー領域に配置するロジック追加codegenxarch.cpp/codegenarmarch.cpp: x64/ARM64のEnC保存領域サイズ計算を継続スロット分拡張ModuleHeaders.h/.cs/CorInfoTypes.cs/DebugInfoHelpers.cs: NativeVarInfo エンコーディング対応のための変更
パフォーマンスへの影響
影響なし(修正は正確性に関するもの)
関連Issue
なし
その他
本変更はJITコンパイラの内部実装に限定されます。R2Rメジャーバージョン変更により、新バージョンのランタイムで既存のR2Rイメージとの互換性が失われます。
#128463 [cDAC] Implement DacDbi heap walking
- 作成者: @Copilot
- 作成日時: 2026年05月21日 23:46:10(UTC)
- マージ日時: 2026年06月01日 20:57:15(UTC)
- ラベル: area-Diagnostics-cdac
概要
cDACベースのDacDbi実装にGCヒープウォーキング機能を追加するプルリクエストです。ネイティブDACの実装をリファクタリングし、ヒープ破損時にセグメント内を単純にストライドするのではなく、次の有効なセグメントに進むように改善しています。cDAC側には線形キャッシュを備えたヒープウォーキングアルゴリズムを実装し、ネイティブ実装とのパリティを実現しています。
変更内容
- DacDbiImpl.cs:
CreateHeapWalk、WalkHeap、DeleteHeapWalkAPIを実装し、小ページキャッシュとアロケーションコンテキスト処理を含むマネージドヒープウォークのライフサイクル管理を追加 - HeapWalk.cs: ヒープウォーキングロジックの専用実装ファイルを新規作成(259行)
- GC_1.cs: アロケーションコンテキススキップとSOH/LOH/POHアライメントをサポートするコントラクトヘルパー(
GetPotentialNextObjectAddress、AlignObjectSize)を実装 - IGC.cs: ヒープウォーキングで使用される2つの新規ヘルパーメソッドをIGCコントラクトインターフェースに追加
- dacdbiimpl.cpp: ヒープウォーク進行ロジックをリファクタリング。破損セグメントをスキップしながら部分ヒープを
E_FAILで通知し、グローバルアロケーションコンテキストカウント処理を修正 - dacimpl.h、gcpriv.h: 新動作(次の有効オブジェクトへの進行)に対応するプライベートメソッド命名の更新とヘッダー定義の微調整
- GC.md: 新しいIGC APIと段階化/アライメントのアルゴリズムを文書化
パフォーマンスへの影響
- cDAC実装に線形読み込みキャッシュを追加することで、大規模ヒープ列挙ループでのパフォーマンスを向上
- ネイティブDACの改善により、ヒープ破損時の処理が効率化(不正なオブジェクトサイズでのストライド廃止、次セグメントへの適切な進行)
- より多くのオブジェクトを破損ヒープ上で発見可能に
関連Issue
その他
- 本変更はデバッグ機能(DacDbi)に関連する内部実装の改善であり、公開APIに破壊的変更なし
- テストファイル(DacDbiHeapWalkDumpTests.cs)が追加され、194行のテストケースが実装されている
#128281 [Diagnostics] Add in-proc crash report watchdog
- 作成者: @mdh1418
- 作成日時: 2026年05月16日 05:44:09(UTC)
- マージ日時: 2026年06月01日 17:04:48(UTC)
- ラベル: area-Diagnostics-coreclr
概要
クラッシュレポート生成が無限に hang するのを防ぐため、in-proc crash reporter にウォッチドッグ機構を追加しました。ウォッチドッグは設定可能なタイムアウト(デフォルト 30 秒)でレポート生成を監視し、タイムアウト時には SIGABRT で プロセスを強制終了します。パイプベースの通知チャネルとデタッチされたウォッチドッグスレッドを使用し、POSIX 互換性と async-signal-safe な実装を確保しています。
変更内容
- inproccrashreportwatchdog.{h,cpp} (新規): ウォッチドッグスレッド、パイププロトコル、タイムアウト処理、abort 動作を実装
- inproccrashreporter.{h,cpp}: タイムアウト値をレポート設定に追加し、ウォッチドッグの初期化とレポート生成の arm/disarm 通知を実装
- crashreportstackwalker.cpp: クラッシュレポート設定時にタイムアウト値を読み込み・配置
- CMakeLists.txt: ウォッチドッグ実装をクラッシュレポートオブジェクトライブラリに追加
- signal.hpp: ウォッチドッグ関連の signal 処理を追加
パフォーマンスへの影響
ウォッチドッグ初期化はクラッシュパス外で実行され、クラッシュ報告パスは async-signal-safe な write() 呼び出しのみに限定されているため、通常の実行パフォーマンスへの影響はありません。ウォッチドッグスレッドは detached で実行され、プロセス指向のクラッシュシグナルは受信しないよう fatal signals がブロックされます。
関連Issue
その他
- 環境変数:
DOTNET_CrashReportTimeoutSecondsでタイムアウトを設定可能(デフォルト: 30秒、0で無効化) - 互換性: ウォッチドッグ初期化が失敗した場合、ウォッチドッグなしでクラッシュレポートが継続されるベストエフォート設計
- プラットフォーム: POSIX システムにおける worker/background スレッドからのクラッシュ時の OS レベルウォッチドッグ信頼性の低さに対応
#128245 Linux SslStream: custom BIO_METHOD over managed buffer windows
- 作成者: @rzikm
- 作成日時: 2026年05月15日 08:00:46(UTC)
- マージ日時: 2026年06月01日 19:55:18(UTC)
- ラベル: area-System.Net.Security tenet-performance
概要
Linux上のOpenSSL SslStreamメモリBIO実装を、呼び出し元が供給したマネージバッファウィンドウで動作するカスタムBIO_METHODに置き換えることで、TLSレコードのメモリコピーを削減します。すべてのSSL操作(ハンドシェイク、暗号化、復号化)を単一のP/Invokeにラップし、ウィンドウのセットアップ、SSL呼び出し実行、テアダウンを1つのネイティブフレーム内で行います。これにより、BIOステージングのmemcpy削減と、SSL_readがユーザーのMemory<byte>に直接平文を書き込めるようになります。
変更内容
- pal_bio.h/c: 読み取りウィンドウ、書き込みウィンドウ、スピルバッファを管理するカスタム
BIO_METHODManagedSpanBioを実装(新規追加) - pal_ssl.h/c:
CryptoNative_SslHandshake、CryptoNative_SslEncrypt、CryptoNative_SslDecryptの新規ネイティブエクスポートを追加。各関数はエラーキューのクリア、入出力ウィンドウのセットアップ、SSL操作実行、結果報告、ウィンドウのテアダウンを単一呼び出しで実行 - opensslshim.h:
BIO_meth_new、BIO_meth_set_*、BIO_get_dataなどのOpenSSL 1.1.0以降の互換シム関数を追加 - Interop.Ssl.cs: P/Invoke署名を更新し、
leftoverOffset/leftoverLength/outputPending出力をサポート - Interop.OpenSsl.cs: 新規シムを呼び出し、BIOウィンドウ管理と左余バイト処理を実装
- SslStreamPal.Unix/OSX/Android.cs:
DecryptMessagePAL契約を統一署名に統一。Linux は直接パスを活用、OSX/Androidは従来の動作を保持 - SslStream.Protocol.cs/IO.cs: 左余バイト出力を処理し、
_buffer.OnDecrypted(leftoverOffset, leftoverLength, frameSize)で記録 - NegotiateStream.cs: 読み取りバッファ状態更新を中フレーム読み取り失敗後のみに遅延させるバグ修正を追加
- SslStreamForceSpillTests.cs: 新規テストスイートでスピルバッファをテスト(新規追加)
パフォーマンスへの影響
- 復号化: 3回のコピー(入力BIO write、OpenSSLレコードバッファ内、ユーザーバッファへのコピー)から1回(OpenSSL内部コピー)に削減。ユーザーバッファが小さい場合は残りの平文を入力バッファに直接ドレイン
- 暗号化: 2回のコピー(BIO write、BIO read)から1回(OpenSSL内部コピー)に削減。
BIO_writeがマネージoutTokenウィンドウに直接ランディング - P/Invoke遷移: ハンドシェイク・暗号化・復号化の3操作で計4回から1回に削減
- ベンチマーク結
#128240 [release/10.0] Update dependencies from dotnet/icu
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年05月15日 02:02:30(UTC)
- マージ日時: 2026年06月01日 00:54:03(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/icu リポジトリから ICU(International Components for Unicode)関連の依存パッケージを更新するPull Requestです。Microsoft.NETCore.Runtime.ICU.Transport パッケージを 10.0.0-rtm.26202.1 から 10.0.0-rtm.26264.1 にアップデートしています。
変更内容
eng/Version.Details.props: バージョン情報を更新(1行削除、1行追加)eng/Version.Details.xml: 依存パッケージのバージョンとコミットハッシュを更新(2行削除、2行追加)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 更新対象: dotnet/icu リポジトリの dotnet/release/10.0 ブランチ
- ビルド番号: 20260514.1(2026年5月14日)
- このPull Requestは自動依存更新ツール(dotnet-maestro[bot])により作成されました
#128204 [ci-scan] Add missing crossgen2 pipelines to triage workflow
- 作成者: @Copilot
- 作成日時: 2026年05月14日 15:31:42(UTC)
- マージ日時: 2026年06月01日 19:53:04(UTC)
- ラベル: area-Infrastructure
概要
CI triage agentic workflowとCI pipeline monitor skillに、日次/週次で実行される3つのcrossgen2パイプライン(definition ID: 134, 136, 141)を追加するもの。これらのパイプラインは最近の失敗ビルドがあるにもかかわらず、ci-failure-scan workflowでトリアージされていませんでした。既存の定義IDリソース(109–160)の範囲内にあるため、JIT/GC/PGO stressスキルによるトリアージが自動的に適用されます。
変更内容
.github/workflows/ci-failure-scan.md— ステップ2のパイプラインテーブルに3つのcrossgen2パイプライン(runtime-coreclr crossgen2 outerloopdef 134、runtime-coreclr crossgen2-compositedef 136、runtime-coreclr crossgen2-composite gcstressdef 141)を追加.github/skills/ci-pipeline-monitor/pipelines.md— 既にトラッキング中のruntime-coreclr crossgen2(def 124)を含む4つのcrossgen2パイプライン全体を、Pipeline Detailsテーブルとキャッシュされた定義IDマッピングテーブルの両方に追加
パフォーマンスへの影響
影響なし(CI/CDワークフロー設定の変更のため)
関連Issue
なし
その他
- 変更はAzDO API経由で確認済み、4つのcrossgen2定義すべてが
dnceng-public/publicに存在することが確認されています - すべてのパイプラインに最近のビルド履歴があり、トリアージが必要な失敗ビルドが存在することが確認されています
#128091 JIT: Enable fgOptimizeRelationalComparisonWithCasts for EQ/NE
- 作成者: @BoyBaykiller
- 作成日時: 2026年05月12日 19:27:54(UTC)
- マージ日時: 2026年06月01日 23:33:12(UTC)
- ラベル: area-CodeGen-coreclr community-contribution
概要
JITコンパイラのfgOptimizeRelationalComparison最適化を拡張し、EQ/NE(等値比較)演算子に対しても型キャスト除去最適化を適用するようにしました。これまでは順序比較演算子(LT, LE, GE, GT)のみが対象でした。
例:(ulong)(a) == uint.MaxValueは、冗長なキャスト変換と64ビット比較ではなく、32ビット比較に最適化されるようになります。
変更内容
src/coreclr/jit/morph.cpp:fgPushConstantsRightの呼び出しをfgMorphSmpOpのswitch文からfgOptimizeRelationalComparison内に移動fgOptimizeRelationalComparisonのガード条件をOperIs(GT_LT, GT_LE, GT_GE, GT_GT)からOperIsCmpCompare()に緩和し、EQ/NE比較にも最適化を適用
パフォーマンスへの影響
改善あり。EQ/NE比較で不要な型キャスト除去により、生成されるネイティブコードが最適化されます。例示されたテストケースでは、8バイト(64ビット)比較から4バイト(32ビット)比較に削減され、より効率的なアセンブリコード生成が実現されます。
関連Issue
なし
その他
既存のfgPushConstantsRight呼び出しはEQ/NEケースを既にカバーしていたため、動作は変わらずに最適化範囲が拡張されています(内部実装の変更)。
#127461 Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 2987866
- 作成者: @dotnet-bot
- 作成日時: 2026年04月27日 16:46:27(UTC)
- マージ日時: 2026年06月01日 07:53:48(UTC)
- ラベル: area-System.Text.Json
概要
OneLocBuild自動化タスクによるローカライズファイルのチェックインです。System.Runtime.InteropServicesとSystem.Text.Jsonライブラリの生成コード用リソース(.xlfファイル)が、ダウンストリームのローカライズパイプラインから返却された翻訳ソースに基づいて更新されています。
変更内容
- System.Runtime.InteropServices/gen/Common/Resources/xlf: 13言語のローカライズリソースファイル(Strings.*.xlf)が各1行の変更で更新
- System.Text.Json/gen/Resources/xlf: 13言語のローカライズリソースファイル(Strings.*.xlf)が各12行追加・11行削除で更新
対象言語: 英語(cs)、ドイツ語(de)、スペイン語(es)、フランス語(fr)、イタリア語(it)、日本語(ja)、韓国語(ko)、ポーランド語(pl)、ポルトガル語(pt-BR)、ロシア語(ru)、トルコ語(tr)、簡体字中国語(zh-Hans)、繁体字中国語(zh-Hant)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- この変更は自動生成されたPull Requestで、翻訳の問題がある場合は https://aka.ms/icxLocBug でバグ報告を行うことが推奨されています
- ローカライズプロセスの詳細は https://aka.ms/AllAboutLoc を参照
#126570 [release/10.0] Update dependencies from dotnet/xharness
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年04月06日 05:04:42(UTC)
- マージ日時: 2026年06月01日 10:52:20(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/xharnessの依存パッケージを更新するPull Requestです。Microsoft.DotNet.XHarness.CLI、Microsoft.DotNet.XHarness.TestRunners.Common、Microsoft.DotNet.XHarness.TestRunners.Xunitを11.0.0-prerelease.26173.1から11.0.0-prerelease.26279.1にアップデートしています。
変更内容
- .config/dotnet-tools.json: dotnetツール設定を更新(+1/-1行)
- eng/Version.Details.props: バージョン詳細プロパティを更新(+3/-3行)
- eng/Version.Details.xml: バージョン詳細XMLを更新(+6/-6行)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- 自動マージツール(dotnet-maestro[bot])による依存関係の定期更新
- Maesto購読ID: c6518838-a73b-4273-bc34-821f32680bb0
- ビルド日時: 2026年5月29日(UTC)
- xharnessコミット: 2cee83bf4841d72c9734a343f3003aeabdd46edf
#126495 [release/8.0-staging] Update dependencies from dotnet/runtime-assets
- 作成者: @dotnet-maestro[bot]
- 作成日時: 2026年04月03日 02:02:53(UTC)
- マージ日時: 2026年06月01日 14:51:18(UTC)
- ラベル: Servicing-approved area-codeflow
概要
dotnet/runtime-assets リポジトリから依存関係を自動更新するPull Requestです。複数のテストデータおよびランタイム関連のアセットパッケージが 8.0.0-beta.26153.1 から 8.0.0-beta.26267.2 にバージョンアップされています。
変更内容
eng/Version.Details.xml: 依存関係の詳細バージョン情報を更新(28行追加、28行削除)eng/Versions.props: プロパティ内のバージョン定義を更新(14行追加、14行削除)
更新対象パッケージ(合計14パッケージ):
- Microsoft.DotNet.CilStrip.Sources
- System.ComponentModel.TypeConverter.TestData
- System.Data.Common.TestData
- System.Drawing.Common.TestData
- System.Formats.Tar.TestData
- System.IO.Compression.TestData
- System.IO.Packaging.TestData
- System.Net.TestData
- System.Private.Runtime.UnicodeData
- System.Runtime.Numerics.TestData
- System.Runtime.TimeZoneData
- System.Security.Cryptography.X509Certificates.TestData
- System.Text.RegularExpressions.TestData
- System.Windows.Extensions.TestData
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
- release/8.0-staging ブランチの定期的な依存関係更新(Maestro自動化による)
- dotnet/runtime-assets の release/8.0 ブランチからの同期
- 変更内容はテストデータおよびランタイムアセットのベータ版バージョン更新のみで、ランタイム本体の機能変更を含まない