Pull Request on 2026年09月02日

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

注意点

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


目次

  1. #133073 [Release/10.0] Initialize debugger sequence map before binding patches
  2. #133064 Update code review skill to not point out public APIs in tools
  3. #133063 [release/11.0] Fix Vector2 and Vector3 comparison reductions
  4. #133060 [release/11.0] [S.T.J] Fix PropertyRef.Equals
  5. #133057 Check method signature as part of loadability checks
  6. #133054 [release/11.0] [GC] Preserve workstation GC diagnostic data in heap dumps
  7. #133052 [release/11.0] Use acquire reads for cast cache entries
  8. #133051 [release/11.0] JIT: update impFixupStructReturnType to handle GT_RET_EXPR
  9. #133048 [release/10.0] Avoid writing jitdump code for block data
  10. #133044 Fix Vector2 and Vector3 comparison reductions
  11. #133043 [release/11.0] Use lock-free reads for ETW rundown versions
  12. #133040 [perf][wasm] Stage Crossgen2 pack for CoreCLR R2R benchmarks
  13. #133037 Disable failing COM dynamic test on CoreCLR
  14. #133036 [release/8.0] Update branding to 8.0.32
  15. #133035 [release/9.0] Update branding to 9.0.21
  16. #133027 [S.T.J] Fix PropertyRef.Equals
  17. #133021 Handle StreamBuffer disposal race in SslStream test
  18. #133017 [System.Text.Json] Use root-level patterns for generated unions
  19. #133011 [mono][llvm] Properly link endfinally to leave targets
  20. #133002 Wire the job monitor flag through YAML correctly
  21. #132984 [release/11.0-rc1] Force runtime discovery for TypeMap entries when unable to encode a type in crossgen2's precomputed TypeMap
  22. #132978 [main] Source code updates from dotnet/dotnet
  23. #132975 [release/11.0] Detect ephemeral client cert key via SEC_E_UNKNOWN_CREDENTIALS in QUIC
  24. #132961 [release/10.0] Update dependencies from dotnet/xharness
  25. #132932 Use hash-based string table reservations
  26. #132894 [release/11.0-rc1] Fix crossgen2 rejecting input files with uppercase .DLL/.EXE extensions
  27. #132888 [automated] Merge branch 'release/11.0-rc1' => 'release/11.0'
  28. #132881 [release/10.0] Source code updates from dotnet/dotnet
  29. #132809 Fix Crossgen2 variance validation for type constraints
  30. #132797 [release/11.0] Source code updates from dotnet/dotnet
  31. #132787 Include unboxing stubs in r2r images
  32. #132747 Reject whitespace in HttpListener chunk sizes
  33. #132708 Add label for area-ReadyToRun in resourceManagement
  34. #132639 Improve exception for large keys with CNG HKDF
  35. #132617 Handle transient file system errors during active polling
  36. #132387 [release/11.0] Update dependencies from dnceng/internal/dotnet-optimization
  37. #132385 [release/11.0] Update dependencies from dotnet/xharness
  38. #132380 [release/11.0] Update dependencies from dotnet/icu, dotnet/runtime-assets
  39. #131878 Don't show SYSLIB1015 when no template given

#133073 [Release/10.0] Initialize debugger sequence map before binding patches

概要

ReadyToRon メソッドで IL ブレークポイントをバインドする際に発生するデバッガーデッドロックを修正します。デバッガー JIT 情報シーケンスマップの初期化を、MapAndBindFunctionPatches がデバッガーコントローラーロックを取得する前に実行することで、ロック保持中の GC モード遷移による待機を回避します。

変更内容

  • src/coreclr/debug/ee/debugger.cpp: Debugger::MapAndBindFunctionPatches メソッド内でロック取得前にシーケンスマップ初期化呼び出し(GetSequenceMapCount())を追加。ロック取得前に潜在的にブロッキングする LazyInitBounds() パスを実行することで、デッドロックを回避。

パフォーマンスへの影響

影響あり:デバッグ情報のデコンプレッション処理が JITComplete イベント時に前倒しされます。ただし、既に IL ブレークポイント マッピングに必要な処理のため、純粋な追加オーバーヘッドは限定的です。

関連Issue

#126096(本修正対象) #123492(main ブランチ対応版)

その他

  • 顧客影響: ReadyToRun アプリケーションのスレッドスターターにブレークポイントを設定してデバッグする際、デバッガーと IDE がハング状態になる問題が外部顧客により報告されていました。
  • リスク: 低。既存の同期化とエラーハンドリングは変更されておらず、シーケンスマップ初期化の時期のみが変更されます。
  • 回帰なし: 基礎的なロック・GC 遷移の相互作用は .NET 10 以前に存在しますが、.NET 10 サービシングでより顕著になりました。
  • テスト: ネイティブ ICorDebug ハーネスで ReadyToRun 最初の実行時にペンディング非ゼロ IL ブレークポイントのバインディング テストを実施(5/5 成功)。
  • レビューコメント: GetSequenceMapCount() の無条件呼び出しに対して、MapAndBindFunctionPatches への明示的な前提条件(!HasDebuggerDataLock() 要件)ドキュメント化が推奨されています。

#133064 Update code review skill to not point out public APIs in tools

  • 作成者: @MichalStrehovsky
  • 作成日時: 2026年09月02日 03:56:29(UTC)
  • マージ日時: 2026年09月02日 04:38:21(UTC)
  • ラベル: area-skills

概要

dotnet/runtimeのコード レビュー スキル ガイダンスを更新し、AI レビュー ツールがtools/ディレクトリ内のツール コードのpublic型を、出荷される公開APIとして誤って指摘しないようにしました。

変更内容

  • .github/skills/code-review/SKILL.md: 「新しいpublicメンバー」検出ヒューリスティックをsrc/全体からsrc/librariesに限定し、tools/サブディレクトリ内のツール コードのpublic表面は公開APIとして扱わないことを明記しました。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

この変更はコード レビュー自動化ガイダンスの改善であり、AIレビュー ツール(Copilotなど)が不適切にpublic型を指摘することを回避するためのものです。PR #131877でのコピロットによる不適切な指摘がきっかけになっています。


#133063 [release/11.0] Fix Vector2 and Vector3 comparison reductions

概要

Vector2とVector3の比較リダクション操作におけるバグを修正するバックポート。GreaterThanAnyとLessThanAnyメソッドが、ゼロ埋めされたパディングレーンを誤ってリダクション計算に含めることで、論理要素のいずれにも該当しない場合に誤ってtrueを返していた問題を解決します。

変更内容

  • Vector2.cs: GreaterThanAny、LessThanAnyの手動展開リダクション実装を、既存のVector128組み込み関数に置き換え
  • Vector3.cs: 同様にリダクション実装をVector128組み込み関数で統一
  • テストスイート: パディングレーン結果の不正な動作に関する回帰テストを追加(Vector2・Vector3各要素、NaN動作を含む)

パフォーマンスへの影響

影響なし。JITがVector128組み込み関数を正規の比較形式に展開するため、パフォーマンス特性は変わりません。

関連Issue

#133044(元のPR)
#130274(回帰原因)

その他

  • リスク評価: Low
  • 破壊的変更: なし(公開API変更なし)
  • テスト: デフォルトハードウェア組み込み関数、AVX2無効、全ハードウェア組み込み関数無効の3環境でSystem.Numerics.Vectorsテストスイート合格
  • ターゲットブランチ: release/11.0(.NET 10以降のサービシング規則に従用)

#133060 [release/11.0] [S.T.J] Fix PropertyRef.Equals

概要

System.Text.Json(S.T.J)のPropertyRef.Equalsメソッドのバグ修正を.NET 11.0にバックポートするPRです。.NET 9以降に影響する回帰バグで、キャッシュされたプロパティ名の比較ロジックを改善します。

変更内容

  • PropertyRef.cs: PropertyRef.Equalsメソッドを修正。受信した名前がキープリフィックスに収まるが、キャッシュされた名前が収まらない場合に対応するよう、既存のバイト単位比較ロジックを拡張しました。
  • CacheTests.cs: 修正を検証するための回帰テストを追加(50行)。

パフォーマンスへの影響

影響なし

関連Issue

#133027(オリジナルのfix PR)

その他

  • 内部検出の回帰バグ(.NET 9以降で発生)
  • テスト追加済み、.NET runtime CIが成功
  • リスク評価:低(既存の比較ロジックの拡張)
  • 本PRはrelease/11.0ブランチへのバックポートです

#133057 Check method signature as part of loadability checks

概要

NativeAOT/ILCompilerのロード可能性検証を強化し、EnsureLoadableMethodがメソッドシグネチャ(戻り値の型とパラメータ型)の検証も行うようにしました。これにより、後続のコンパイル段階(特にデバッグ情報生成フェーズ)でロード不可能な型に遭遇してコンパイラがクラッシュするのを防ぎます。

変更内容

  • src/coreclr/tools/Common/Compiler/CompilerTypeSystemContext.Validation.cs
    • EnsureLoadableMethodにメソッドシグネチャの検証ロジックを追加
    • 戻り値の型(method.Signature.ReturnType)のロード可能性チェック
    • すべてのパラメータ型のロード可能性チェック

パフォーマンスへの影響

影響なし。既存のEnsureLoadableTypeキャッシュを活用し、結果のキャッシュは未実装(通常、このチェックは1回のみ実行されるため)。

関連Issue

#133007

その他

  • 本変更は既存の検証パターンと一貫しており、最小限の変更セット
  • Copilotレビューからは、シグネチャ変数を含む型に対してもガード条件を追加すべき点が指摘されている(EnsureLoadableType適用時の潜在的なアサートや不正なキャスト回避のため)

#133054 [release/11.0] [GC] Preserve workstation GC diagnostic data in heap dumps

概要

release/11.0ブランチへのバックポート。ワークステーション GC のダイアグノスティックデータがヒープダンプに保持されるように改善します。これにより、ヒープダンプ解析時に GC 関連の診断情報がより正確に保存・復元されます。

変更内容

  • src/coreclr/debug/daccess/request.cpp: DAC(Debug Access Classes)のリクエスト処理でワークステーション GC 診断データの保存ロジックを追加
  • src/coreclr/gc/gc.cpp: GC の診断データ保持処理を強化
  • src/coreclr/gc/gcinterface.dacvars.def: DAC 変数定義に GC 診断データ関連の定義を3つ追加
  • src/coreclr/gc/gcinterface.h: GC インターフェースの型定義を調整

パフォーマンスへの影響

影響なし(ダイアグノスティック機能の改善のため、通常のランタイムパフォーマンスへの直接的な影響はありません)

関連Issue

#132973

その他

  • 本 PR は #132973 の release/11.0 へのバックポート
  • ワークステーション GC 環境でのヒープダンプ解析機能に関する変更であり、デバッグ/診断ツール利用者に影響
  • GC の内部実装とDAC(デバッグアクセス層)の両側で整合性を保つ変更

#133052 [release/11.0] Use acquire reads for cast cache entries

概要

キャスト キャッシュエントリの読み取り操作に対してアクイャイア セマンティクスを使用するよう修正。ARM64での高並行サーバーアプリケーションにおけるパフォーマンス問題を解決し、約10%のパフォーマンス向上を実現します。

変更内容

  • src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/CastCache.cs: キャスト キャッシュのメモリ操作をアクイャイア読み取りセマンティクスに変更(4行追加、12行削除)

パフォーマンスへの影響

パフォーマンス向上: ARM64プラットフォームで約10%のパフォーマンス改善を確認(顧客環境での検証済み)

  • x86/x64では強力なメモリモデルのため実質的な影響なし
  • 高並行環境での改善効果が顕著

関連Issue

#132630(メインブランチへの元のPR)

その他

  • 低リスク修正:x86/x64では変更の影響がなく、ARM64でのメモリ順序付けの改善のみ
  • メインブランチで約2週間の検証期間を経た後のバックポート
  • 顧客環境での検証済み

#133051 [release/11.0] JIT: update impFixupStructReturnType to handle GT_RET_EXPR

概要

JITコンパイラのimpFixupStructReturnType関数を更新し、GT_RET_EXPRノードタイプの処理に対応しました。.NET 8以降で発生していた稀なケースにおけるJITのアクセス違反(AV)を修正します。

変更内容

  • src/coreclr/jit/importer.cpp: impFixupStructReturnType関数を改良し、GT_RET_EXPRノードの処理ロジックを追加(+23/-9)
  • src/tests/JIT/Regression/JitBlue/Runtime_130135/Runtime_130135.cs: 問題を再現するテストケースを追加(+38)
  • src/tests/JIT/Regression/Regression_ro_2.csproj: テストプロジェクト設定を更新(+1)

パフォーマンスへの影響

影響なし

関連Issue

#130135、#132986

その他

  • release/11.0へのバックポート版です
  • .NET 8から存在していた回帰バグの修正
  • リスク評価: 低(稀なケースの限定的な修正)
  • 報告者によって再現ケースで検証済み

#133048 [release/10.0] Avoid writing jitdump code for block data

概要

Linux jitdump ログ出力において、ブロックレベルのスタブ割り当てに対して未コミットまたは未初期化のメモリから code bytes を書き込もうとしていた問題を修正します。この回帰は .NET 10.0 Preview 4 で導入され、DOTNET_PerfMapEnabled 有効時に jitdump 書き込み失敗により perf でマネージドシンボルが表示されなくなるという顧客報告の問題を解決します。

変更内容

  • src/coreclr/pal/inc/pal.h: PAL_PerfJitDump_LogMethod API に reportCodeBlock フラグパラメータを追加
  • src/coreclr/pal/src/misc/perfjitdump.cpp: reportCodeBlock=false の場合、JIT_CODE_LOAD レコードから code bytes ペイロードを省略し、iovec 出力調整に対応
  • src/coreclr/vm/perfmap.cpp: スタブ割り当てタイプに基づいて reportCodeBlock フラグを設定。ブロックスタブではコード bytes をスキップし、通常メソッドと非ブロックスタブでは code bytes を保持

パフォーマンスへの影響

影響なし

関連Issue

#132935、#122274、#113943

その他

  • リスク評価: 低。変更はメモリがアンコミットまたは未初期化の可能性があるブロックレベルスタブ割り当てに対してのみコード bytes を省略し、その他の jitdump レコードは引き続き code bytes を含みます
  • 注意点: Copilot review で指摘されているように、reportCodeBlock=false の場合 record.code_size は元の codeSize に設定されたままのため、jitdump レコードが内部的に矛盾する可能性があります(ヘッダーでコード bytes なしと示しながら code_size には値が設定される)

#133044 Fix Vector2 and Vector3 comparison reductions

概要

Vector2 と Vector3 の厳密な比較還元(GreaterThanAny/LessThanAny)がゼロ埋められたパディングレーンと有効性マスク内のゼロエントリの比較により、論理的に一致するレーンがない場合でも誤って true を返していた問題を修正。Vector128 の直接比較還元を使用し、包括的な All 還元も同様に簡素化。パディングに敏感な結果とすべての有効レーンの NaN に対するテストカバレッジを追加。

変更内容

  • Vector2.cs/Vector3.cs: GreaterThanAny と LessThanAny を Vector128.GreaterThanAny/Vector128.LessThanAny に変更。GreaterThanOrEqualAll/LessThanOrEqualAll を Vector128.*All 還元ヘルパーを直接使用するように簡素化
  • Vector2Tests.cs/Vector3Tests.cs: 厳密な Any 比較のパディングレーン誤検知に対する回帰テストと、包括的な All 比較に対する NaN 動作テストを追加

パフォーマンスへの影響

影響なし(ロジック訂正とコード簡素化のため、パフォーマンス特性への変動は報告されていません)

関連Issue

なし

その他

このPull Requestは GitHub Copilot により作成されました。修正により、Vector128 専用の還元ヘルパーが JIT によって正規の比較形式に展開されるため、パディングレーンの不正なマッチングを防止します。


#133043 [release/11.0] Use lock-free reads for ETW rundown versions

概要

ETW rundown処理中のグローバルコード・バージョニングロック保持時間を削減するため、ロック不要な読み取り操作を導入しました。JIT数が多いアプリケーションでETW rundown中にJITパスがブロックされていた問題を解決します。

変更内容

  • eventtrace.cpp: ETW rundown時のロック保持ロジックを簡素化し、ロック不要な読み取り操作に変更(14行追加/28行削除)
  • codeversion.cpp: ロック不要なバージョン情報読み取り用の補助実装を追加(10行追加/3行削除)
  • method.cpp/method.hpp: ロック不要な読み取りをサポートするためのメソッドを追加(25行追加、3行追加)

パフォーマンスへの影響

  • JIT数が多いアプリケーションにおいて、ETW rundown処理中の全体スループット低下を改善
  • ロック競合による遅延が軽減され、JIT実行パスのブロック時間が削減される
  • 具体的な数値は提供されていません

関連Issue

#132757

その他

  • リスク評価: 低リスク。診断機能のみに影響
  • トレードオフ: Rundownプロセス中にJIT実行中のメソッドが報告されない可能性がありますが、Rundownは全体的にアトミックなスナップショットを保証しないため許容範囲
  • テスト検証: ReJIT、リバート、段階的コンパイル、OSR、反復的なETW rundownサイクルで検証済み。Release/Debugの両構成でアサーション/アクセス違反なし。ETLトレースもTraceEventで検証、不正なペイロードやデコードエラーなし

#133040 [perf][wasm] Stage Crossgen2 pack for CoreCLR R2R benchmarks

概要

WASM性能ベンチマークのビルドパイプラインを更新し、CoreCLR browser-wasm向けにホストCrossgen2パッケージを生成・ステージングできるようにしました。これにより、孤立したHelixマシンで同一ビルドのアセットを使用してR2R(Ready-to-Run)公開が可能になります。BuildHostTools=trueの明示的なオプトインで、ブラウザCoreClRビルドがCrossgen2 Host sfxprojを実行できるようになります。

変更内容

  • eng/Subsets.props: TargetOS=browserかつBuildHostTools=trueの場合、ホストCrossgen2パック生成の条件を調整(TargetsMobile=trueでも許可)
  • eng/pipelines/performance/templates/perf-wasm-build-jobs.yml: CoreCLR browser-wasm性能ジョブでBuildHostToolsと Crossgen2パックステージング を有効化
  • eng/pipelines/performance/templates/perf-wasm-prepare-artifacts-steps.yml: 非シンボルのMicrosoft.NETCore.App.Crossgen2.*.nupkgを性能アーティファクトのローカルフィード(staging/built-nugets)にコピーするオプションステップを追加(シンボルパッケージは除外、マッチングがない場合は失敗)

パフォーマンスへの影響

ステージングロジックの追加で若干のビルド時間増加の可能性がありますが、この変更は性能ベンチマークパイプラインの基盤整備であり、ベンチマーク実行自体のパフォーマンスには直接的な影響ありません。

関連Issue

なし

その他

  • 変更はBrowserWasmCoreCLRに限定されており、Monoアーティファクトの動作は変わりません
  • Android環境はBuildHostTools=trueでも除外されたままです
  • dotnet/performanceリポジトリの連携変更(commit 17449e9826d0ecc224e92a3ad854796b0be41219)に依存して、end-to-end検証が行われます
  • 提案者はGitHub Copilotの支援を受けて本PRを作成しています

#133037 Disable failing COM dynamic test on CoreCLR

  • 作成者: @agocke
  • 作成日時: 2026年09月01日 18:55:55(UTC)
  • マージ日時: 2026年09月02日 00:10:42(UTC)
  • ラベル: area-Interop-coreclr

概要

COM Dynamic相互運用テストがChecked CoreCLR実行時にWindows.Amd64.Open.rtで頻繁に失敗しているため、CoreCLRでのみテストを無効化します。根本原因の修正は#132947で追跡される予定です。スキップはCoreClrに限定されるため、他のランタイムでのテストカバレッジは保持されます。

変更内容

  • src/tests/Interop/COM/Dynamic/Program.cs: [ActiveIssue]属性を追加してCoreClrでのテストをスキップ。[ActiveIssue(TestRuntimes.CoreCLR)]で#132947にリンク。

パフォーマンスへの影響

影響なし

関連Issue

#132947

その他

  • テスト無効化により、CoreCLRでの間欠的なCI失敗を回避
  • 他のランタイム(MonoなどのCoreClr以外)ではテストは継続実行
  • Validation: git diff --check と src/tests/build.sh -Test Interop/COM/Dynamic/Dynamic.csproj x64 checked で検証済み

#133036 [release/8.0] Update branding to 8.0.32

概要

.NET 8.0リリースブランチのバージョンブランディングを8.0.32に更新するサービシングリリースです。ProductVersionおよびPatchVersionを31から32に変更します。

変更内容

  • eng/Versions.props: ProductVersionとPatchVersionを8.0.31から8.0.32に更新(+2/-2行)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • 対象: release/8.0ブランチのサービシングリリース
  • 変更範囲は限定的(バージョン情報のみ)

#133035 [release/9.0] Update branding to 9.0.21

概要

.NET 9.0 の release/9.0 ブランチにおけるサービシング リリース 9.0.21 のブランディング・バージョン更新です。ProductVersion と PatchVersion を 9.0.20 から 9.0.21 へ引き上げます。

変更内容

  • eng/Versions.props: ProductVersion と PatchVersion をバージョン 9.0.21 に更新(2行追加/2行削除)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

なし


#133027 [S.T.J] Fix PropertyRef.Equals

  • 作成者: @jozkee
  • 作成日時: 2026年09月01日 17:09:50(UTC)
  • マージ日時: 2026年09月02日 02:01:59(UTC)
  • ラベル: area-System.Text.Json

概要

System.Text.JsonのUTF-8プロパティ名キャッシュにおける等値性判定のバグを修正しました。短いプロパティ名(≤7バイト)が、埋め込みキーを共有する長いプロパティ名と誤ってマッチする問題を解決しています。PropertyRef.Equalsメソッドを更新し、両方のプロパティ名が埋め込みキー形式(≤7バイト)に収まる場合のみバイト比較をスキップするようにしました。

変更内容

  • PropertyRef.cs: PropertyRef.Equals(ReadOnlySpan<byte>, ulong)メソッドの等値性ロジックを強化。キーの衝突が発生した場合に、短いUTF-8名と長いUTF-8名の間の誤検知を回避するよう修正。
  • CacheTests.cs: 同じ計算キーを持つが異なる長さの2つのプロパティ名を構築し、プロパティキャッシュ内で確実に区別されることを検証するリグレッションテストを追加。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このバグはPropertyRef内で埋め込みキー形式の比較時に、キー長が1バイトに切り詰められる結果として異なる長さのプロパティ名が同じキーとして扱われてしまう状況を修正しています。本修正はSystem.Text.Json(ライブラリ内部実装)の信頼性向上に関わるものです。


#133021 Handle StreamBuffer disposal race in SslStream test

  • 作成者: @rzikm
  • 作成日時: 2026年09月01日 14:29:43(UTC)
  • マージ日時: 2026年09月02日 14:06:51(UTC)
  • ラベル: area-System.Net.Security

概要

SslStreamの破棄とハンドシェイク処理が並行実行される際の競合状態をテストするDispose_ParallelWithHandshake_ThrowsODEテストを改善。Alpine環境ではStreamBuffer.TryWriteToBufferメソッドから例外が発生することがあり、従来のConnectedStreamsフィルタでは検出できていませんでした。テストの例外フィルタを拡張し、特定のStreamBufferメソッド(TryWriteToBufferとWriteAsync)からの例外も期待される状態として受け入れるように修正しました。

変更内容

  • src/libraries/System.Net.Security/tests/FunctionalTests/SslStreamDisposeTest.cs
    • ValidateExceptionAsyncメソッドの例外フィルタを拡張
    • System.IO.ConnectedStreamsに加え、System.IO.StreamBuffer.TryWriteToBufferとSystem.IO.StreamBuffer.WriteAsyncからのスタックトレースを許可
    • フィルタをメソッド名単位で指定することで、関連のないStreamBufferのInvalidOperationExceptionエラーを隠蔽しないよう配慮

パフォーマンスへの影響

影響なし(テストコード修正のため)

関連Issue

#132748

その他

  • テスト対象の外部ループテスト(outer-loop test)で合格確認
  • System.Net.Security機能スイート全体で5,369テスト実行、当該テストは合格
  • ローカルWindows環境で関連性の無い別のテスト(TlsSessionTests.ClientSession_ExternalCertificateValidation_AcceptWithDefaultValidation_FailsOnUntrustedCert)に不具合あり

#133017 [System.Text.Json] Use root-level patterns for generated unions

概要

System.Text.Json のソースジェネレータが生成するユニオン型のデコンストラクタ内の switch ステートメントを、union の Value プロパティを経由するのではなく、ルートレベルの型パターン(root-level type patterns)を使用するように改善します。これにより、生成されるコードがより直接的で効率的になります。

変更内容

  • JsonSourceGenerator.Emitter.cs: ユニオン型デコンストラクタの switch case パターンを生成する際に、ルートレベルの型パターンを使用するよう変更(コード削減:11行削除、2行追加)
  • UnionTests.cs: ユニオン型パターン動作に関する説明コメントを更新
  • ベースライン更新: RecursiveUnionType、RecursiveNullableUnionType、SubclassCaseUnionType の各テストケースについて、netcoreapp および net462 向けの生成コード出力ベースラインを更新(新しい switch パターンを反映)
  • JsonSourceGeneratorOutputTests.cs: ユニオン型ベースライン検証ケースのコメントを更新

パフォーマンスへの影響

影響なし(コード生成の最適化であり、ランタイムパフォーマンスへの直接的な影響はありません)

関連Issue

なし

その他

このPRは GitHub Copilot により作成されました。.NET 11へのバックポート候補とされています。


#133011 [mono][llvm] Properly link endfinally to leave targets

  • 作成者: @BrzVlad
  • 作成日時: 2026年09月01日 13:08:47(UTC)
  • マージ日時: 2026年09月02日 13:17:56(UTC)
  • ラベル: area-Codegen-LLVM-mono

概要

Mono LLVM-AOT において、leave 命令からの制御フローを finally ブロック経由で正しく構築するよう修正しました。従来は finally ブロック内の最後の命令を leave ターゲットにリンクしていましたが、複数の endfinally オペコードや endfinally 後の到達不可能なコードが存在する場合、無効な制御フローグラフ(CFG)を生成していました。本修正により、各 endfinally 命令を正確に leave ターゲットにリンクし、後続の LLVM 最適化パスでのアサート失敗を防止します。

変更内容

  • method-to-ir.c: finally ハンドラごとに endfinally を含む基本ブロックと leave ターゲットを追跡し、IR 生成完了後に正しい CFG エッジをリンク
  • mini-llvm.c: LLVM IR 生成時に到達不可能な基本ブロックへの暗黙的フォールスルー分岐を回避
  • Runtime_132936.il/ilproj: endfinally が最後のバイトでない場合や endfinally 後にコードがある場合を検証するリグレッションテストを追加

パフォーマンスへの影響

影響なし

関連Issue

#132936

その他

  • 影響範囲: Mono LLVM-AOT コンパイラの内部実装(例外処理の制御フロー構築)
  • 互換性: 無効な CFG 生成を修正する修正であり、破壊的変更ではありません
  • 検証: 提供されたリグレッションテストにより、複雑な finally/leave の形状が正しく処理されることを確認

#133002 Wire the job monitor flag through YAML correctly

概要

Helix Job Monitor機能を有効にするフラグをAzurePipelines YAMLパイプライン全体で正しく配線する修正です。#132150で導入された際、変数/パラメータの配線が誤りで、Helixジョブを送信するMSBuildタスクが結果を待機する同期処理になっていました。本修正で、火星ぶっぱなし(fire-and-forget)の非同期モニタリングに切り替わります。

変更内容

  • ランタイムラッパーパイプライン(runtime-wasm.yml、runtime-android.yml等):useHelixMonitor: ${{ variables.enableHelixJobMonitor }}をextra-platformテンプレートに明示的に渡すよう追加
  • extra-platformテンプレート(runtime-extra-platforms-wasm.yml、runtime-extra-platforms-android.yml等):useHelixMonitorを明示的なテンプレートパラメータとして追加し、ネストされたHelix送信テンプレートでvariables.enableHelixJobMonitorではなくparameters.useHelixMonitorを使用するよう修正
  • WASM固有の対応:WASM関連のHelix送信がモニタリングに参加できるようuseHelixMonitorを伝播

パフォーマンスへの影響

影響なし(CIパイプラインの実装変更であり、ランタイムやコンパイラのパフォーマンスに直接的な影響はありません)

関連Issue

#132150

その他

Copilotレビューで以下の懸念が指摘されています:

  • WASM パイプラインの一部でshouldContinueOnError: trueとuseHelixMonitorが同時に有効な場合、モニタリング有効時は送信ステップが待機しないため「error継続」の抑制が機能しない(モニタージョブがゲーティング)という矛盾が存在
  • runtime-extra-platforms-wasm.ymlのalwaysRunがvariables.isRollingBuildを参照しており、テンプレートパラメータのparameters.isRollingBuildではなく外部変数に依存している一貫性の問題

#132984 [release/11.0-rc1] Force runtime discovery for TypeMap entries when unable to encode a type in crossgen2's precomputed TypeMap

概要

PR #131610で導入されたTypeMap事前計算機能に起因する問題を修正します。カスタム属性blob内の型名文字列参照に対してTypeMapエントリを事前計算する際、ランタイムが解決不可能な外部型参照が生成される場合がありました。本修正では、そのような解決不可能なエントリについて、事前計算されたマップを使用せず、ランタイムにマップを構築させるよう強制します。

変更内容

  • MutableModule.cs: ソースモジュールがターゲット型への解決可能な参照を形成できるかを判定するヘルパーメソッド(CanCreateReferenceToType)を追加。既存のTypeRef/AssemblyRefメタデータ関係を考慮
  • ReadyToRunTypeMapManager.cs: ヘッダー生成時にTypeMapコンテンツを事前スキャンし、解決不可能な参照型を検出。該当する外部/プロキシマップエントリをランタイム処理対象としてマーク(状態値0を設定)
  • ReadyToRunProxyTypeMapNode.cs: ランタイム処理が必要な場合、状態0を出力し依存関係の導入をスキップ
  • ReadyToRunExternalTypeMapNode.cs: ランタイム処理が必要な場合、状態0を出力し依存関係の導入をスキップ

パフォーマンスへの影響

影響なし。修正対象となるTypeMapエントリについては、事前計算から実行時計算に変更されるため、初回アクセス時のランタイムオーバーヘッドが発生する可能性がありますが、これは修正前の仕様に戻す変更です。

関連Issue

#132811、#131527(回帰の原因)

その他

  • リスク評価: 低。新機能や既存フォーマット変更を導入せず、既存機能を利用した対処です
  • 後方互換性: RC1向けの軽量バックポート。main向けの修正(PR #133038)はR2Rフォーマット変更とバージョン更新を含む、より本質的なアプローチ
  • 内部向け修正: 顧客報告ではなく内部で検出。Crossgen2パイプラインで検証済み
  • テスト: 既存テストスイート(crossgen2パイプライン)で問題を検出・検証

#132978 [main] Source code updates from dotnet/dotnet

概要

dotnet/dotnetリポジトリからのコードフロー更新PR。Roslyn、NuGet、Arcade、および各種.NET SDKなどの複数の依存パッケージをアップデートします。主にコンパイラ・ビルドツール・分析ツールの版を引き上げるもので、ソースコードへの直接的な変更は最小限です。

変更内容

  • 依存パッケージ更新:

    • Microsoft.CodeAnalysis関連(5.11.0 → 5.12.0)
    • Microsoft.DotNet.Arcade.Sdk(11.0.0-beta.26425.125 → 11.0.0-beta.26431.109)
    • System.Reflection.Metadata、System.Text.Json(11.0.0-rc.1.26425.125 → 11.0.0-rc.1.26431.109)
    • NuGet.Framework/Packaging/ProjectModel/Versioning(7.11.0-rc.42625 → 7.11.0-rc.43209)
    • その他ビルドタスク・ツールチェーン関連パッケージ多数
  • 設定ファイル更新:

    • global.json、eng/Version.Details.props/xml、.config/dotnet-tools.json を更新
    • ビルド・ソースインデックス関連の共通テンプレートファイル修正
  • ソースコード変更:

    • src/coreclr/vm/callhelpers.cpp:軽微な削除(1行)
    • src/installer/pkg/sfx/installers/dotnet-host.proj:軽微な更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは自動化されたコードフロー更新(Maestro)によるもので、複数のリポジトリ(aspnetcore、efcore、fsharp、msbuild、roslyn、sdk、winformsなど)の関連変更を含みます。互換性への重大な影響は提供情報からは確認できません。


#132975 [release/11.0] Detect ephemeral client cert key via SEC_E_UNKNOWN_CREDENTIALS in QUIC

概要

MsQuicの最新バージョン更新に伴い、エフェメラルキーを持つ証明書使用時のエラーコード検出を修正するバックポートです。Windows環境でSchannel(TLSプロバイダ)がエフェメラルキー(キーストアに永続化されないWindows固有の概念)付き証明書に対応していないため、SEC_E_UNKNOWN_CREDENTIALSエラーが返されるようになりました。本変更により、より診断的で有用な例外が.NETアプリケーションに渡されるようになります。

変更内容

  • src/libraries/System.Net.Quic/src/System/Net/Quic/Internal/MsQuicConfiguration.cs
    • エフェメラルクライアント証明書キーの検出ロジックを追加(SEC_E_UNKNOWN_CREDENTIALSエラーコードの処理)
    • エラー検出の改善による診断例外の向上
    • テスト失敗の修正

パフォーマンスへの影響

影響なし

関連Issue

#132832

その他

  • 本変更はrelease/11.0ブランチへのバックポートです
  • MsQuicの最新バージョン更新に伴う回帰修正です
  • 修正範囲は限定的で、リスクは低いと評価されています
  • CIで検証済みです

#132961 [release/10.0] Update dependencies from dotnet/xharness

概要

dotnet/xharnessの依存ライブラリをバージョン11.0.0-prerelease.26419.1から11.0.0-prerelease.26428.1に更新します。 この更新はMaestro自動依存関係更新システムによる定期的なアップデートです。

変更内容

  • Microsoft.DotNet.XHarness.CLI: 11.0.0-prerelease.26419.1 → 11.0.0-prerelease.26428.1
  • Microsoft.DotNet.XHarness.TestRunners.Common: 11.0.0-prerelease.26419.1 → 11.0.0-prerelease.26428.1
  • Microsoft.DotNet.XHarness.TestRunners.Xunit: 11.0.0-prerelease.26419.1 → 11.0.0-prerelease.26428.1

更新対象ファイル:

  • .config/dotnet-tools.json
  • eng/Version.Details.props
  • eng/Version.Details.xml

パフォーマンスへの影響

影響なし

関連Issue

なし

その他


#132932 Use hash-based string table reservations

概要

NativeAOT/共有オブジェクトライター内のStringTableBuilderが、文字列予約時のSortedSetからDictionaryベースのハッシュ専用の重複排除方式に変更されます。フラッシュ時に決定論的な序数順序を明示的に復元してから既存のサフィックス共有ソート・エミッションを実行します。COFF文字列予約フェーズで約40~46%のCPU削減(7.66~8.59秒から4.63秒)を実現します。

変更内容

  • StringTableBuilder.cs: SortedSet<Utf8String>からDictionary<Utf8String, int>(初期値としてセンチネルオフセット格納)および一時的なList<Utf8String>に変更。予約時はハッシュベースの重複排除を実行し、フラッシュ時にCollectionsMarshal.AsSpanを使用した配列ソート(Utf8String.CompareToによる序数バイト順)で順序を復元。その後既存のマルチキーサフィックスソートと変更なしのエミッションを実行。フラッシュ後はリスト参照をドロップしてメモリ回収を可能にします。
  • テストプロジェクト設定と新しいCoffStringTableTests.cs追加:COFF文字列テーブルのバイト・オフセット決定論的検証とエッジケースカバレッジ。

パフォーマンスへの影響

大幅な改善(Windows COFF向け):

  • 文字列予約フェーズ:-4.698秒(-86.1%)、レジスト妨害あたり実測値0.734~0.791秒(従来5.010~9.508秒)
  • 全体ターゲット牆時間:-4.305秒(-56.3%)、CPU:-4.125秒(-56.1%)
  • マネージド割り当て:-48.1 MiB(-16.3%)
  • ピークワーキングセット:-66.6 MiB(-15.2%)

シンボルオフセットパスの処理コスト増加(+0.386秒、+17.8%):ツリー挿入コストがソートフェーズに移動するため。文字列テーブル書き込みの差異は約37.2msで無視可能。出力オブジェクトサイズおよび全体マネージド割り当ては変更なし。COFF、ELF、Mach-O、PE エクスポート著者で共有されるビルダーの既存の順序・エミッション契約は保持されます。

関連Issue

なし

その他

  • 全バリデーション実施:ILCompiler.Compiler.Tests(22合格)、NativeAOT決定論的テスト合格、NativeAOTスモークテスト(28合格)、ILCompiler.ReadyToRun.Tests(85合格、5プラットフォームスキップ)。
  • 現在のmainストレスプローブおよび .NET 10.0.11 フルRDM測定で完全なバイト一致を確認。決定論的出力は順序変動にもかかわらず保証されます。
  • クロスプラットフォームパフォーマンスの主張なし。Windows COFF経路が対象最適化です。

#132894 [release/11.0-rc1] Fix crossgen2 rejecting input files with uppercase .DLL/.EXE extensions

概要

Crossgen2がファイルシステムから大文字の.DLL/.EXE拡張子を持つ入力ファイルを拒否する問題を修正しました。大文字の拡張子を報告するファイルシステム上では、この問題により該当バージョンのcrossgen2が使用不可になっていました。

変更内容

  • src/coreclr/tools/aot/crossgen2/Program.cs: ファイル拡張子の大文字小文字判定ロジックを修正(+20/-15行)
    • ファイル拡張子の比較時に大文字小文字を区別しないように変更

パフォーマンスへの影響

影響なし

関連Issue

#132857(オリジナルPR) リグレッション関連: #122947

その他

  • このPRはrelease/11.0-rc1ブランチへのバックポートです
  • リスク評価: 低(変更は小規模で対象が絞られており、既存テストの失敗なし)
  • ローカルビルドでcrossgen2の動作を検証済み
  • .NET 11.0-RC1向けの修正のため、パッケージオーサリングの実施は不要(.NET 9以降)

#132888 [automated] Merge branch 'release/11.0-rc1' => 'release/11.0'

概要

release/11.0-rc1ブランチからrelease/11.0ブランチへの自動マージPRです。mmitcheによるコミットをrelease/11.0に統合するもので、自動化されたリリースブランチ管理の一部です。

変更内容

提供された情報に基づいて、具体的な変更ファイルや変更内容の詳細は記載されていません。

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

  • このPRは自動マージされず、テストが通過した後、スクイャッシュまたはリベースではなくマージコミットで統合される必要があります
  • マージ競合が発生する可能性があり、その場合は手動での解決が必要です
  • コントリビューターはブランチ merge/release/11.0-rc1-to-release/11.0 へのプッシュ権限を持ち、競合解決や変更が可能です
  • 質問がある場合は dotnet/dnceng に連絡してください

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

概要

このPRは、dotnet/dotnetリポジトリ(VMR)からのコードフロー更新です。.NET 10.0ブランチの依存関係とビルド構成をアップデートしており、主にビルドツール、コード分析ツール、ランタイムライブラリの依存パッケージを更新しています。

変更内容

  • 依存パッケージの更新:
    • Microsoft.CodeAnalysis系:5.0.0-2.26424.122 → 5.0.0-2.26431.103
    • Microsoft.CodeAnalysis.NetAnalyzers、Microsoft.DotNet.ApiCompat.Task:10.0.112 → 10.0.113
    • Microsoft.DotNet.Arcade.Sdk及び関連ビルドタスク:10.0.0-beta.26424.122 → 10.0.0-beta.26431.103
    • Microsoft.NET.Sdk.IL、Microsoft.NETCore.App.Ref、System.Text.Json等:10.0.12 → 10.0.13
    • NuGet関連パッケージ:7.0.3-rc.42522 → 7.0.3-rc.43203
    • System.CommandLine:2.0.12 → 2.0.13
  • ビルド設定ファイルの更新:NuGet.config、eng/Version.Details.props/xml、global.json、onelocbuild.yml等を更新

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このコードフロー更新は自動生成されたもので(dotnet-maestro[bot]による)、release/10.0.1xxブランンチからのソースコード変更と依存関係更新を統合しています。関連する各リポジトリ(arcade、aspnetcore、efcore、razor、roslyn等)の変更も同期されています。


#132809 Fix Crossgen2 variance validation for type constraints

  • 作成者: @jtschuster
  • 作成日時: 2026年08月27日 01:09:27(UTC)
  • マージ日時: 2026年09月02日 17:09:49(UTC)
  • ラベル: area-ReadyToRun

概要

Crossgen2のジェネリック型制約に対する変異性(variance)検証ロジックを修正しました。ECMA-335仕様では型が保有する制約は無制限であるべきとされていますが、Crossgen2が誤ってメソッドの制約ルールを型制約に適用していたため、有効な変異インターフェースの検証に失敗し、READYTORUN_FLAG_SkipTypeValidationフラグが省略されていました。この修正により、仕様準拠のコード生成が可能になります。

変更内容

  • TypeValidationChecker.cs: 型が保有するジェネリック制約に対する無効な変異性チェックを削除(13行削除、2行追加)
  • GenericTypeConstraints.cs: 報告された制約パターンに基づくReadyToRun回帰テストを追加(11行追加)
  • R2RTestSuites.cs: テストスイート定義に新規テストケースを追加(32行追加)

インターフェースメソッドシグネチャ検証をVM実装に合わせるため、静的仮想メソッド(static virtual)と静的抽象メソッド(static abstract)の宣言を含む、すべてのインスタンスメソッドと仮想メソッドをチェックするように調整されています。

パフォーマンスへの影響

影響なし

関連Issue

#132724

その他

  • ReadyToRun(R2R)コンパイル時の型検証ロジックの修正
  • ECMA-335 II.9.7仕様に準拠するための変更
  • 内部実装(AOT/Crossgen2ツールチェーン)の修正で、公開APIへの影響なし

#132797 [release/11.0] Source code updates from dotnet/dotnet

概要

このPull Requestは、dotnet/dotnetリポジトリのVMR(Virtual Monorepo)からのコードフロー更新です。.NET 11.0.1xxリリースブランチ(ビルド20260826.2)の依存パッケージを更新し、Roslyn、NuGet、診断ツールなどの関連リポジトリの最新変更を取り込みます。

変更内容

  • eng/Version.Details.props: バージョン情報の更新(+40/-40行)
  • eng/Version.Details.xml: 依存関係の詳細定義を更新(+81/-81行)
  • global.json: グローバルプロジェクト設定の更新(+4/-4行)

更新される主要な依存パッケージ:

  • Microsoft.CodeAnalysis関連: 5.12.0-1.26425.121 → 5.12.0-1.26426.102
  • Microsoft.NET.Workload.Emscripten: 11.0.100-rc.2.26425.121 → 11.0.100-rc.2.26426.102
  • Microsoft.DotNet.Arcade.Sdk: 11.0.0-beta.26425.121 → 11.0.0-beta.26426.102
  • NuGet関連パッケージ: 7.11.0-rc.42621 → 7.11.0-rc.42702
  • System.Text.Json、System.Reflection.Metadata、System.CommandLine等の複数のコアライブラリ

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

これはコードフロー自動更新PRです。以下の関連リポジトリからの変更が含まれています:

  • dotnet/diagnostics
  • nuget/nuget.client
  • dotnet/roslyn

変更内容の詳細を確認するには、提供されたコマンド darc vmr diff --name-only を実行してください。


#132787 Include unboxing stubs in r2r images

  • 作成者: @BrzVlad
  • 作成日時: 2026年08月26日 15:08:53(UTC)
  • マージ日時: 2026年09月02日 05:37:43(UTC)
  • ラベル: area-ReadyToRun

概要

R2R(Ready-to-Run)イメージにアンボックス・スタブを含めることで、iOS/WebAssemblyプラットフォームでインタープリタの実行を回避します。値型に対するインターフェース経由のメソッド呼び出しに対応するため、ILStubMethodを継承する特殊なメソッドを実装します。これらのスタブはInstanceMethodEntryPointsテーブルにエンコードされ、ランタイムが必要な際にシグネチャに基づいて検索・ロードされます。

変更内容

  • アンボックス・スタブの実装: CompilerTypeSystemContext.BoxedTypes.csでILStubMethodベースのアンボックス・スタブを追加。シグネチャの生成とIL実装を提供
  • 依存関係分析の拡張: GVMDependenciesNode.csで、値型のインターフェース経由メソッド呼び出しに対するアンボックス・スタブの生成
  • テーブル管理: InstanceEntryPointTableNode.csでシグネチャベースのエンコード・デコード処理を実装
  • ランタイム側の対応: readytoruninfo.cppとprestub.cppでアンボックス・スタブのロード・マッチング処理を追加
  • テストケース追加: ジェネリック仮想メソッド関連のテストを追加(GVM.cs、NonGVM.cs)
  • R2Rバージョン更新: 古いランタイムが通常メソッドとアンボックス・スタブを誤認識する回避のため、R2Rバージョンをバンプ

パフォーマンスへの影響

影響なし(パフォーマンス測定値は提供されていません)

関連Issue

なし

その他

  • 互換性: R2Rバージョン更新により、旧ランタイムとの互換性に制限あり。SigMatchesMethodDescがアンボックス・ビットをチェックしないランタイムでは、通常メソッドとアンボックス・スタブが同じシグネチャになり誤マッチのリスクあり
  • 共有ジェネリック・メソッドの対応: 本PR未対応。ランタイムがメソッド・インスタンス非表示引数を期待しないため、将来の追加変更が必要
  • 実装設計: NativeAOTのUnboxingThunkとGenericUnboxingThunkを参考に実装。カスタムアセンブリ・スタブ(UnboxingStubNode)はスコープ縮小のため未実装

#132747 Reject whitespace in HttpListener chunk sizes

  • 作成者: @Copilot
  • 作成日時: 2026年08月25日 13:49:22(UTC)
  • マージ日時: 2026年09月02日 16:52:07(UTC)
  • ラベル: area-System.Net.Http

概要

HttpListener の chunked transfer encoding パーサーを修正し、チャンクサイズフィールド内の不正な空白文字を拒否するようにしました。修正前は 5 \r\n のようなサイズフィールド後の空白を不正に受け入れていましたが、修正後は16進数文字のみを解析し、オプションの拡張機能の前の空白を厳密に拒否します。

変更内容

  • ChunkStream.cs: チャンクサイズの解析ロジックを修正。16進数文字の前の空白を許容せず、オプションの拡張機能の前までの16進数のみを抽出して解析
  • HttpRequestStreamTests.cs: 末尾の空白を含む不正なチャンクサイズをリジェクトすることを検証する回帰テストを追加(61行)
  • GetContextHelper.cs: テスト補助ファイルの軽微な更新

パフォーマンスへの影響

影響なし

関連Issue

#132746

その他

  • セキュリティ: この変更により、RFC 7230に準拠しない不正なHTTPチャンク仕様(サイズフィールドの空白)がより厳密に拒否されます
  • 互換性: 既存の正規な16進数サイズまたはセミコロン拡張は変更されないため、互換性への影響なし
  • リスク: 低。管理型パーサーが無効なチャンクサイズ構文のみを拒否し、有効な仕様に対する変更なし
  • Copilot指摘: 負の整数値(16進数でオーバーフロー時のint.Parseの動作)がパース後すぐに拒否されるべき点が指摘されていますが、本修正では既に範囲外のチャンクサイズを無効と扱う実装

#132708 Add label for area-ReadyToRun in resourceManagement

  • 作成者: @jtschuster
  • 作成日時: 2026年08月24日 16:32:47(UTC)
  • マージ日時: 2026年09月02日 18:08:25(UTC)
  • ラベル: area-Infrastructure

概要

リポジトリのGitOps resourceManagement ポリシーを更新し、area-ReadyToRun ラベルを "area label added" トリガーリストに追加して、他のarea領域と同じように自動タグ付けとそれに関連する自動化機能を有効にします。

変更内容

  • .github/policies/resourceManagement.yml: labelAdded トリガーリストに area-ReadyToRun を追加(+14/-0)

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

このPRは開発プロセスの自動化に関する変更であり、CrossGen contributorsチームに関連しています。


#132639 Improve exception for large keys with CNG HKDF

  • 作成者: @vcsjones
  • 作成日時: 2026年08月21日 19:29:13(UTC)
  • マージ日時: 2026年09月02日 21:00:28(UTC)
  • ラベル: area-System.Security

概要

Windows CNG実装のHKDFで、IKM(Initial Keying Material)が16kビット(2048バイト)の上限を超えた場合に発生していた不明確な「unknown error」を改善するもの。CNG APIからHKDFアルゴリズムのKeyLengthsプロパティをクエリして最大キーサイズを事前に確認し、超過時に明確なCryptographicExceptionをスロー。他のプラットフォーム(OpenSSLなど)は同様の制限がないか、既に適切なエラーメッセージを提供している。

変更内容

  • HKDF.Windows.cs: CNG提供の最大キーサイズをキャッシュし、超過時に改善されたエラーメッセージをスロー
  • Interop.BCrypt.Types.cs: BCRYPT_KEY_LENGTHS_STRUCTの新規定義でKeyLengthsプロパティペイロード受信に対応
  • Interop.BCryptPropertyStrings.cs: BCRYPT_KEY_LENGTHS定数("KeyLengths")を追加
  • Strings.resx: IKM超過時の例外メッセージ用ローカライズ文字列を追加
  • HKDFTests.cs: 大容量IKM/salt/infoの回帰テストを追加(Windows/非Windows対応)
  • System.Security.Cryptography.csproj: 新規interop型定義ファイルをビルドに含める

パフォーマンスへの影響

影響なし(エラー時のエラーハンドリング改善のみで、正常系のパフォーマンスに変化なし)

関連Issue

#132542

その他

公開API変更なし(内部実装の改善)。Windowsプラットフォーム専用の改善であり、他プラットフォームに変更なし。


#132617 Handle transient file system errors during active polling

概要

Microsoft.Extensions.FileProviders.Physicalのアクティブポーリング機能において、一時的なファイルシステムエラー(ネットワークシェアの一時的な利用不可など)がプロセスを終了させたり、リカバリ検出を妨げたりする問題を修正します。ディレクトリスキャン失敗を「変更なし」として扱い、前回の成功したハッシュを保持することで、障害発生中の変更を復旧後に検出できるようになります。

変更内容

  • PollingWildCardChangeToken.cs: ディレクトリスキャン失敗を予想される例外として処理し、タイムスタンプ高速パスの使用前に前回成功したベースラインハッシュの存在を要件化
  • PhysicalFilesWatcher.cs: タイマーコールバック内でトークンごとのポーリングを個別に処理し、1つのトークンの失敗が他のトークン処理を阻害しないように隔離
  • PollingFileChangeToken.cs: ポーリング実装の改善
  • テストファイル: ディレクトリスキャン失敗、復旧、ベースライン/タイムスタンプ動作に関するリグレッションテストを追加

パフォーマンスへの影響

影響なし

関連Issue

#95631

その他

  • この変更はMicrosoft.Extensions.FileProviders.Physicalライブラリの内部実装改善であり、公開APIの変更はありません
  • 破壊的変更なし
  • 一時的なファイルシステムエラーに対するロバスト性向上であり、既存コードの互換性に影響を与えません

#132387 [release/11.0] Update dependencies from dnceng/internal/dotnet-optimization

概要

dotnet-optimization リポジトリから最適化関連の依存関係を更新するPRです。MIBC(Minimum Instrumentation Block Count)ランタイムとPGO(Profile Guided Optimization)CoreCLRの複数プラットフォーム対応バージョンを、1.0.0-prerelease.26403.1から1.0.0-prerelease.26420.2に更新しています。

変更内容

  • eng/Version.Details.props:バージョン情報の更新(+6/-6)
  • eng/Version.Details.xml:依存関係の詳細定義の更新(+12/-12)
  • 更新対象パッケージ:
    • optimization.linux-arm64.MIBC.Runtime
    • optimization.linux-x64.MIBC.Runtime
    • optimization.windows_nt-arm64.MIBC.Runtime
    • optimization.windows_nt-x64.MIBC.Runtime
    • optimization.windows_nt-x86.MIBC.Runtime
    • optimization.PGO.CoreCLR

パフォーマンスへの影響

提供情報に基づく具体的なパフォーマンス影響の記載なし。ただし、MIBCおよびPGOの最適化データ更新のため、ランタイムのパフォーマンス特性に潜在的な改善がある可能性があります。

関連Issue

なし

その他

  • ビルド日時:2026年8月20日 18:30:48 UTC
  • 対象ブランチ:release/11.0
  • この更新はdotnet-maestro[bot]による自動依存関係更新です
  • 複数プラットフォーム(Linux ARM64/x64、Windows NT ARM64/x64/x86)対応の最適化データが含まれています

#132385 [release/11.0] Update dependencies from dotnet/xharness

概要

dotnet/xharnessの依存関係を更新するPull Requestです。XHarness関連のNuGetパッケージ(CLI、TestRunners.Common、TestRunners.Xunit)を11.0.0-prerelease.26368.1から11.0.0-prerelease.26428.1にアップデートします。

変更内容

  • .config/dotnet-tools.json: dotnet-toolsのバージョン更新(1行変更)
  • eng/Version.Details.props: バージョン詳細プロパティの更新(3行変更)
  • eng/Version.Details.xml: XHarness依存関係の詳細情報更新(6行変更)

更新対象パッケージ:

  • Microsoft.DotNet.XHarness.CLI
  • Microsoft.DotNet.XHarness.TestRunners.Common
  • Microsoft.DotNet.XHarness.TestRunners.Xunit

パフォーマンスへの影響

影響なし

関連Issue

なし

その他


#132380 [release/11.0] Update dependencies from dotnet/icu, dotnet/runtime-assets

概要

dotnet/runtimeのrelease/11.0ブランチにおいて、dotnet/icuおよびdotnet/runtime-assetsからの依存関係を更新するPull Requestです。ICUランタイムトランスポートパッケージとテストデータ関連の複数のアセットパッケージがバージョンアップされています。

変更内容

  • eng/Version.Details.props: 依存関係のバージョン情報を更新(+17/-17行)
  • eng/Version.Details.xml: 依存関係のバージョン詳細を更新(+34/-34行)

更新対象:

  • dotnet/icu: Microsoft.NETCore.Runtime.ICU.Transport を 11.0.0-alpha.1.26364.1 から 11.0.0-alpha.1.26418.1 へ更新
  • dotnet/runtime-assets: 16個のテストデータおよびアセットパッケージを 11.0.0-beta.26403.1 から 11.0.0-beta.26426.1 へ更新
    • CilStrip、暗号化X509証明書、圧縮形式、正規表現、タイムゾーンデータ、ネットワークテスト、Fuzzing用テストデータなど

パフォーマンスへの影響

影響なし

関連Issue

なし

その他

自動化されたMaestro依存関係更新システムにより生成されたPull Requestです。release/11.0ブランチの継続的な依存関係管理の一環として実施されています。


#131878 Don't show SYSLIB1015 when no template given

概要

[LoggerMessage] ソースジェネレータが、メッセージテンプレートなしのロギングメソッドに対して不正に SYSLIB1015 警告を発生させていた問題を修正します。メッセージなしでパラメータをキャプチャするパターン(構造化ログのみ)は正当で広く使われていますが、TreatWarningsAsErrors を使用するプロジェクトでビルド失敗を引き起こしていました。

[LoggerMessage(LogLevel.Critical)]
public static partial void FoodRecallNotice(
    this ILogger logger,
    string brandName, string productDescription, string productType);
// 修正前:5個のパラメータごとに SYSLIB1015 警告
// 修正後:警告なし(メッセージなし時は診断を抑制)

変更内容

  • LoggerMessageGenerator.Parser.cs: メソッドごとに hasMessage フラグを計算し、ArgumentHasNoCorrespondingTemplate の診断呼び出しをガードするよう修正(破壊的変更なし)
  • LoggerMessageAttribute.cs: メッセージ省略時の構造化ログのみのパターンについてXMLドキュメント追加
  • テストクラス群: メッセージなしのロギングメソッドをテストするメソッドを再有効化。メッセージ空文字列 ("")、null、省略時は警告なし;メッセージあり時は既存動作を保持

パフォーマンスへの影響

影響なし

関連Issue

#101687

その他

本修正は内部実装(ソースジェネレータ)の改善であり、公開APIは変更されません。メッセージなし時の SYSLIB1015 診断は本来不適切だったもの(診断テキスト「ロギングメッセージから参照されない」は、メッセージが存在しない場合に成立しない)で、Microsoft.Extensions.Telemetry の同等診断 LOGGEN011 が Info レベルであることとの一貫性もあります。既存のメッセージテンプレートがある場合の動作は完全に保持されます。


目次