注意点
このページは、dotnet/runtimeリポジトリにマージされたPull Requestを自動的に収集し、その内容をAIが要約した内容を表示しています。そのため、必ずしも正確な要約ではない場合があります。
目次
- #132246 JIT: Fix build break in instruction table
- #132226 [cDAC] Fix LoongArch64 epilog scope sizing
- #132222 JIT: Do not mark an async call no-return because its callee has no ret
- #132211 Emit version 2 for NativeAOT managed data descriptor
- #132206 Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 3045920
- #132202 [QUIC] Update MsQuic
- #132201 [WebSocket] Fix handling of BFinal in WebSocket deflate.
- #132187 [cDAC] Fix ARM64 save_any opcode decoding
- #132186 Crossgen2: don't mutate getCallInfo token
- #132183 [cDAC] Fix ARM unwind implementation
- #132182 Disable Helix Job Monitor in runtime pipeline
- #132177 Remove redundant / too-strict asserts in LoadAssembly
- #132176 Disable GcRestrictedCalloutReversePInvoke under GC/JIT stress modes; require multithreading support
- #132172 Fix WASM R2R virtual IP initialization
- #132171 [release/10.0] Implement a workaround for ld-prime hitting an assert on large addends
- #132170 [Wasm RyuJIT]: Remove more unreachable NYI_WASM entries
- #132169 [cDAC] Fix bugs in x86 unwinder
- #132166 Revert "JIT: cache the wasm image base in a local"
- #132158 Preserve the V1 async-profiler stitch boundary
- #132151 System.IO: Make CanSeek independent of SafeFileHandle.Type
- #132150 Enable Helix job monitor across test pipelines
- #132148 Limit buffer size for CommandStream
- #132141 Fix interpreter delegate calls through shuffle thunks
- #132136 Fix Unix file descriptor assertion
- #132134 DispatchResolve: Avoid clobbering t1 in RhpInterfaceDispatch
- #132126 Disable Runtime_129681 CrossGen2 testing
- #132124 Use CRLF for chunked response framing test
- #132122 Type definitions are loaded by IDE out of the box
- #132119 [release/8.0-staging] Disable timing out EncryptedXml encoded-DTD tests
- #132118 [release/9.0-staging] Disable timing out EncryptedXml encoded-DTD tests
- #132112 Move GB18030 tests to feature test projects
- #132101 Modernize JIT Directed merged runners
- #132079 Fix SslStream client certificate credential caching
- #132076 Restore isolation for GC Collect tests
- #132011 Fix agentic workflow markers removed from safe outputs
- #131835 Rename INS_FLGAS in consistent style for xarch emitter.
- #131738 Zip centraldirectory Hardening
- #131492 [wasm] Pass Int128, Decimal128 and wide vectors by value
- #131457 TlsContext/TlsSession: document lifetime, tighten AttachSocket
- #131209 [release/8.0-staging] Skip empty iOS NativeAOT Helix submission
- #129926 Consolidate unix platforms flavors in S.N.Http
- #129118 Validate invalid base type declarations in ILVerify
#132246 JIT: Fix build break in instruction table
- 作成者: @jakobbotsch
- 作成日時: 2026年08月12日 23:24:45(UTC)
- マージ日時: 2026年08月12日 23:53:50(UTC)
- ラベル: area-CodeGen-coreclr
概要
PR #131835 と #130512 のマージ競合により生じたビルド破損を修正するもの。xarch命令テーブルで、名前変更された命令フラグ定数への残存する参照を標準化された INS_FLAGS_* 形式に更新しました。
変更内容
- src/coreclr/jit/instrsxarch.h: AVX512-FP16/AVX10v1のFP16関連命令において、
INS_Flags_IsDstSrcSrcAVXInstruction/INS_Flags_IsDstDstSrcAVXInstructionの古い参照をINS_FLAGS_IsDstSrcSrcAVXInstruction/INS_FLAGS_IsDstDstSrcAVXInstructionに統一(48行の変更)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
この変更はビルド破損を解決するためのマージ競合修正であり、JITコンパイラの命令定義層における内部実装の修正です。
#132226 [cDAC] Fix LoongArch64 epilog scope sizing
- 作成者: @rcj1
- 作成日時: 2026年08月12日 18:07:47(UTC)
- マージ日時: 2026年08月12日 23:59:16(UTC)
- ラベル: area-Diagnostics-cdac
概要
LoongArch64のエピログスコープサイジングの計算ロジックを修正し、cDAC スタックウォーキング時のアンワインド動作を改善します。エピログの最終命令を含めることで、実行がエピログ戻り命令にある場合を正確に検出でき、既に完了したスタック調整の重複適用を防ぎます。
変更内容
- LoongArch64Unwinder.cs:
ComputeScopeSize(...)メソッドでエピログスコープのサイズ計算を修正。エピログ領域の場合、スコープサイズをインクリメント(scopeSize++)することで、最終的なエピログ命令を正確にアカウンティングします。 - StackWalkTests.cs: LoongArch64のエピログ戻り命令時のアンワインド動作を検証する回帰単体テストを追加。スタックポインタ調整が重複しないことを確認します。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRはデバッグ・診断機能(cDAC: Common Data Access Component)に関わる内部実装の修正であり、ランタイムのスタックウォーキング精度の向上を目的としています。公開APIへの影響はありません。
レビュアーのコメントより、以下の改善提案が抑制されています:
- エピログ専用のスコープサイズ調整に対する説明コメント追加の検討
- ビットフィールド構造の詳細化によるテストの可読性向上
#132222 JIT: Do not mark an async call no-return because its callee has no ret
- 作成者: @jakobbotsch
- 作成日時: 2026年08月12日 17:24:17(UTC)
- マージ日時: 2026年08月12日 23:08:23(UTC)
- ラベル: area-CodeGen-coreclr
概要
JITのインライン候補スキャン処理で、非同期呼び出し(async call)がcalleeのILに戻りブロックがないという理由だけで"no-return"としてマークされることを防止します。非同期呼び出しの場合、calleeの中断処理(suspension)により呼び出し元のasync中断・継続コードが実行されるため、不正なno-return伝播を回避します。
変更内容
src/coreclr/jit/fgbasic.cpp:fgFindJumpTargetsメソッドで、非同期呼び出しに対する"no-return"ロジックをスキップするためのIsAsync()ベースのガード条件を追加(+8行、-2行)- async呼び出しサイトのinline callノードが
DOES_NOT_RETURNフラグでマークされることを防止
パフォーマンスへの影響
影響なし。この変更はJITの制御フロー解析ロジックの正確性改善であり、実行時パフォーマンスへの影響はありません。
関連Issue
その他
この変更は保守的なアプローチを取っており、JIT全体のno-return呼び出し処理の推論を簡潔にすることを目的としています。async呼び出しの特殊な制御フロー特性(中断・継続メカニズム)を適切に考慮した修正です。
#132211 Emit version 2 for NativeAOT managed data descriptor
- 作成者: @max-charlamb
- 作成日時: 2026年08月12日 14:07:55(UTC)
- マージ日時: 2026年08月12日 15:16:39(UTC)
- ラベル: area-NativeAOT-coreclr area-Diagnostics-cdac
概要
.NET 11の凍結されたデータコントラクト仕様に対応するため、NativeAOT(ILC生成)の管理型サブディスクリプタで発行されるデータディスクリプタのバージョンを0から2に更新しました。cDAC初期化時にDataContractReaderが古いバージョンを拒否していた問題を解決します。
変更内容
- src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/DependencyAnalysis/ManagedDataDescriptorNode.cs
ManagedDataDescriptorNode内の発行JSON"version"フィールドを0から2に変更
パフォーマンスへの影響
影響なし
関連Issue
その他
- この変更は.NET 11のデータコントラクト仕様凍結(#131858)に伴うもので、NativeAOTのディスクリプタライターが遅れて対応する形となりました
- 修正前は
Unsupported data descriptor version '0'. Expected version 2.というエラーで cDAC初期化が失敗していました - Windows・Linux各アーキテクチャの内部cDACダンプおよびエンドツーエンドテストで動作確認されています
#132206 Localized file check-in by OneLocBuild Task: Build definition ID 679: Build ID 3045920
- 作成者: @dotnet-bot
- 作成日時: 2026年08月12日 10:47:16(UTC)
- マージ日時: 2026年08月12日 13:03:59(UTC)
- ラベル: area-Infrastructure-libraries
概要
OneLocBuildタスクによる自動生成PRです。ローカライズパイプラインから返却された翻訳ファイル(.lcl)に基づいて生成されたローカライズ済みリソースファイル(XLFファイル)をチェックインします。System.Runtime.InteropServices.genとSystem.Text.Json.genライブラリの多言語リソース文字列を更新します。
変更内容
- System.Runtime.InteropServices/gen/Common/Resources/xlf: 13言語のStrings.xlfファイル(de/es/fr/it/ja/ko/pl/pt-BR/ru/tr/zh-Hans/zh-Hant/cs)を各4行ずつ更新
- System.Text.Json/gen/Resources/xlf: 13言語のStrings.xlfファイルを各10行ずつ更新
- 変更内容は翻訳メタデータとコンテンツの同期(言語リソースの管理データの更新)
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは自動生成であり、翻訳の品質に問題がある場合はhttps://aka.ms/icxLocBugにバグ報告してください。詳細情報はOneLocBuild wiki(https://aka.ms/onelocbuild)およびローカライズプロセスドキュメント(https://aka.ms/AllAboutLoc)を参照してください。
#132202 [QUIC] Update MsQuic
- 作成者: @ManickaP
- 作成日時: 2026年08月12日 08:43:28(UTC)
- マージ日時: 2026年08月12日 11:55:57(UTC)
- ラベル: area-System.Net.Quic
概要
Windows上のSystem.Net.Quicビルド・テストで使用されるMsQuic (Schannel)のNuGetパッケージバージョンを2.5.9から2.5.10にアップグレードします。
変更内容
eng/Versions.props:MicrosoftNativeQuicMsQuicSchannelVersionプロパティを2.5.9から2.5.10に更新
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このバージョンアップは中央集約的なバージョン管理プロパティを通じてWindows環境でのQUIC実装に適用されます。
#132201 [WebSocket] Fix handling of BFinal in WebSocket deflate.
- 作成者: @ManickaP
- 作成日時: 2026年08月12日 08:38:58(UTC)
- マージ日時: 2026年08月12日 11:53:36(UTC)
- ラベル: area-System.Net
概要
WebSocket permessage-deflateの圧縮解除時にDEFLATE形式のBFINAL=1ブロックが原因で、マネージドWebSocket inflaterが入力の消費を停止して受信ループがハングする問題を修正します。また、WebSocket専用のファザーを追加し、ファジング基盤を拡張しています。
変更内容
- WebSocketInflater.cs:
BFINAL=1(DEFLATE終端フラグ)検出時に未消費の圧縮バイトが残っていないか確認し、存在する場合はメッセージを拒否(例外を発生)してハング防止 - WebSocketDeflateTests.cs:
BFINAL=1で終端された圧縮フレームの回帰テスト追加 - ManagedWebSocket.cs: 受信バッファコピーパス内のassert削除
- Strings.resx:
BFINAL後の不正なデータに関する新しいエラーメッセージ(net_WebSockets_DataAfterBFinal)追加 - WebSocketFuzzer.cs: WebSocket deflateに特化した新規ファザーハーネスを追加
- DotnetFuzzing/Program.cs: ファイルベースの実行でPID出力、生成されるローカル実行スクリプトにデフォルトの
-timeout追加 - Fuzzing/README.md: ローカルファジング例の更新
- deploy-to-onefuzz.yml: OneFuzzへの新WebSocketファザーデプロイメント追加
パフォーマンスへの影響
影響なし(バグ修正とテスト基盤拡張のため)
関連Issue
その他
- 互換性:
BFINAL=1直後に不正なデータを含むWebSocketメッセージは、修正後はWebSocketExceptionで拒否されます(これは不正な圧縮形式のため、破壊的変更ではなく修正) - 留意点: WebSocketFuzzerのタイムアウト処理は
WebSocketExceptionのみキャッチしているため、タイムアウト時にOperationCanceledExceptionまたはオブジェクト破棄時にObjectDisposedExceptionがエスケープする可能性があります
#132187 [cDAC] Fix ARM64 save_any opcode decoding
- 作成者: @rcj1
- 作成日時: 2026年08月11日 23:51:36(UTC)
- マージ日時: 2026年08月12日 21:58:48(UTC)
- ラベル: area-Diagnostics-cdac
概要
ARM64 unwind-code decoding における save_any opcode のデコーディングバグを修正しました。cDAC(Compact DAC)のスタックアンワインディング処理で、ビットフィールド抽出が誤ったバイト位置から行われていた問題を解決し、単体テストを追加しています。
変更内容
- ARM64Unwinder.cs:
save_anyopcode のビットフィールド抽出を修正。x、p、固定operationビットをffooooooバイト(第2バイト)ではなく0pxrrrrrバイト(第1バイト)から正しく読み取るように変更 - StackWalkTests.cs: ARM64
save_anyペアアンワインディングの動作を検証するリグレッションテストを追加。最小限の.pdata/.xdataと スタックメモリを構築して、X19/X20 レジスタペアの復元を検証
パフォーマンスへの影響
影響なし(バグ修正のみ)
関連Issue
なし
その他
本修正は Microsoft 公式ドキュメント(ARM64 例外処理)に基づいています。内部実装の修正であり、公開APIへの影響はありません。
#132186 Crossgen2: don't mutate getCallInfo token
- 作成者: @AndyAyersMS
- 作成日時: 2026年08月11日 23:43:16(UTC)
- マージ日時: 2026年08月12日 14:58:53(UTC)
- ラベル: area-ReadyToRun
概要
Crossgen2のJIT呼び出し解決時に、getCallInfoが呼び出し元のCORINFO_RESOLVED_TOKENトークンを内部的に変更してしまう問題を修正しました。これにより、SuperPMIが正しくないルックアップキーを記録していました。解決策として、getCallInfoの開始時にトークンをコピーし、そのコピーを内部処理全体で使用するようにしています。
変更内容
- src/coreclr/tools/aot/ILCompiler.ReadyToRun/JitInterface/CorInfoImpl.ReadyToRun.cs:
getCallInfoメソッド内でpResolvedTokenパラメータを受け取った時点でローカル変数resolvedTokenにコピーし、制約解決や内部ブックキープ処理でこのコピーを使用。呼び出し元のトークンが変更されないようになります。
パフォーマンスへの影響
影響なし(トークンのコピーは微小なオーバーヘッド)
関連Issue
なし
その他
- 検証結果:
- Browser/wasm CoreLib collection:
GetCallInfoリプレイ失敗が1,089から0に削減 - Windows x64 CoreLib Crossgen2 collection:クリーンにリプレイ成功
- Browser/wasm CoreLib collection:
- 本変更は内部実装の修正であり、公開API層への影響はなく、互換性への懸念なし
#132183 [cDAC] Fix ARM unwind implementation
- 作成者: @rcj1
- 作成日時: 2026年08月11日 23:28:02(UTC)
- マージ日時: 2026年08月12日 02:25:23(UTC)
- ラベル: area-Diagnostics-cdac
概要
ARM 32ビット向けのcDAC(Diagnostic Address Checker)のARMUnwinderにおけるアンワインド処理の不具合を修正しています。具体的には、コンパクトアンワインドのエピログ処理において、Ret==0の場合にPC(プログラムカウンタ)をポップするべき処理が正しく行われていなかった点を修正し、呼び出し元のコンテキストが適切に復元されるようにしました。
変更内容
- ARMUnwinder.cs: コンパクトエピログ処理におけるレジスタマスク(LR/PC)の処理を修正し、
Ret==0の場合にPCをポップするよう対応。また、ComputeScopeSizeでのアンワインドコードストリーム読み込み時に、バッファ終端を超えないよう安全な処理に改善。 - StackWalkTests.cs: ARM コンパクトアンワインドエピログのシナリオを網羅する回帰テストを追加し、レジスタ/PC/SPの復元とアンワインドフラグを検証。
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRは公開APIではなく、内部実装(cDACの診断スタックウォーク機能)に対する修正です。バッファオーバーラン防止も含まれており、堅牢性の向上に寄与しています。
#132182 Disable Helix Job Monitor in runtime pipeline
- 作成者: @mmitche
- 作成日時: 2026年08月11日 23:27:00(UTC)
- マージ日時: 2026年08月12日 02:12:00(UTC)
- ラベル: area-Infrastructure
概要
runtime Azure Pipelinesで Helix Job Monitor を無効化する変更です。CI パイプラインでのアップロード時間が過度に長くなっている問題への一時的な対応であり、根本的な解決策の検討までの間の暫定措置です。
変更内容
eng/pipelines/runtime.yml:enableHelixJobMonitorフラグをfalseに設定し、Helix Job Monitorジョブ/テンプレートの実行を防止
パフォーマンスへの影響
アップロード時間の短縮が期待されます。ただし、この変更により Helix ジョブのモニタリング機能が無効化されるため、ジョブ監視能力が低下する可能性があります。
関連Issue
なし
その他
本変更は暫定的な対応(stopgap)です。作成者により根本的な解決策が検討される予定です。
#132177 Remove redundant / too-strict asserts in LoadAssembly
- 作成者: @elinor-fung
- 作成日時: 2026年08月11日 22:57:53(UTC)
- マージ日時: 2026年08月12日 19:57:03(UTC)
- ラベル: area-AssemblyLoader
概要
AppDomain::LoadAssembly*メソッド内の過度に厳密なデバッグアサーションを削除するPRです。これらのアサーションは、部分的な読み込み(デッドロック制限による読み込みレベルなど)の正当なシナリオで発火し、既存のコメントおよび意図された動作と矛盾していました。既存の機能的なガード(ThrowIfError、EnsureLoadLevel、RequireLoadLevel)により、正確性は引き続き保証されます。
変更内容
- src/coreclr/vm/appdomain.cpp: 読み込みレベルと「エラーなし」条件に関する冗長なデバッグアサーション(
_ASSERTE)を削除 - src/coreclr/vm/appdomain.hpp: 関連する定義を削除(6行)
パフォーマンスへの影響
影響なし(デバッグアサーションの削除のため、リリースビルドへの影響はなし)
関連Issue
その他
- この変更はアセンブリ読み込みの実装詳細に関するもので、ランタイム内部(coreclr VM層)の修正です
- 破壊的変更やAPIの変更はなし
- 既存の機能的なエラーチェック機構は維持されており、動作上の回帰リスクは低い
#132176 Disable GcRestrictedCalloutReversePInvoke under GC/JIT stress modes; require multithreading support
- 作成者: @Copilot
- 作成日時: 2026年08月11日 22:48:46(UTC)
- マージ日時: 2026年08月12日 18:43:20(UTC)
- ラベル: area-Interop-coreclr
概要
GcRestrictedCalloutReversePInvokeテストがGC/JITストレス実行時に失敗する問題に対応しました。ComWrappers.RegisterForTrackerSupportがストレス設定下でPlatformNotSupportedExceptionをスローするため、テスト実行を制限する条件を追加しました。
変更内容
- src/tests/Interop/COM/ComWrappers/GcRestrictedCalloutReversePInvoke/Program.cs
[ActiveIssue]属性を追加し、AnyGCStressおよびAnyJitStress設定下でテストを無効化[Fact]を[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsMultithreadingSupported))]に置き換え、マルチスレッドをサポートするプラットフォームのみでテストを実行するように変更
パフォーマンスへの影響
影響なし
関連Issue
その他
このテストはバックグラウンドGCおよびマルチスレッド機能に依存しているため、マルチスレッドをサポートしない環境では実行されません。ストレス実行環境での失敗は設計上の制限であり、条件付き実行により適切に対処されています。
#132172 Fix WASM R2R virtual IP initialization
- 作成者: @davidwrighton
- 作成日時: 2026年08月11日 21:44:26(UTC)
- マージ日時: 2026年08月12日 20:58:02(UTC)
- ラベル: area-ReadyToRun
概要
WASM Ready-to-Run (R2R) 環境における仮想IP初期化のタイミング問題を修正しました。Eager fixups実行前に仮想IP範囲が登録されていなかったため、R2Rエントリポイントが仮想IPベースなしでマップされ、後続のスタックウォークルックアップが失敗していました。この修正により、仮想IP範囲をeager fixupsより前に登録し、複合コンポーネント間で最小仮想IPを共有し、使用前に初期化アサーションを追加します。
変更内容
- src/coreclr/vm/ceeload.cpp: Eager fixups実行前に仮想IP範囲を登録するロジックを追加(+16/-5)
- src/coreclr/vm/readytoruninfo.cpp: 複合WASM環境での仮想IP割り当てロジックを改修し、複数コンポーネント間での最小仮想IPの共有、および初期化前使用のアサーション追加(+29/-24)
- src/coreclr/vm/readytoruninfo.h: 仮想IP関連の宣言・インターフェースを拡張(+17/-1)
パフォーマンスへの影響
影響なし
関連Issue
その他
WASM (WebAssembly) ターゲットのランタイムロードに関する内部実装変更です。公開APIへの影響はありません。変更は browser OS プラットフォーム向けの Ready-to-Run 処理に限定されます。
#132171 [release/10.0] Implement a workaround for ld-prime hitting an assert on large addends
- 作成者: @agocke
- 作成日時: 2026年08月11日 21:37:06(UTC)
- マージ日時: 2026年08月12日 09:16:35(UTC)
- ラベル: Servicing-approved area-NativeAOT-coreclr
概要
Apple プラットフォーム上で NativeAOT がリンク時にアサート失敗する問題を修正するバックポートです。Mach-O オブジェクトライターにおいて、RELPTR32 リロケーションの大きなアディエンドが ld-prime の符号付き 20 ビット インラインエンコーディングの制限を超えた場合、セクション相対リロケーションアンカーシンボルを導入して対応します。各アンカーをサブトラクタベースとして選択することで、すべてのアディエンドがインライン範囲内に収まるようにします。
変更内容
src/coreclr/tools/aot/ILCompiler.Compiler/Compiler/ObjectWriter/MachObjectWriter.cs
RELPTR32リロケーション処理の更新:インラインアディエンド計算とセクションごとのアンカーメカニズムを介したリンカ安全なストアドアディエンド計算を追加- Mach-O シンボルテーブルへのローカルアンカーシンボル出力
MachSectionにIsZeroFill/IsExecutableヘルパーメソッドを追加- セクションごとのアンカー追跡とキャッシュ検索機能を実装
パフォーマンスへの影響
影響なし
関連Issue
その他
- 変更は NativeAOT Mach-O オブジェクトライター内での
RELPTR32リロケーション処理(ARM64 および x64.eh_frame)に限定された低リスク修正です - リロケーション値は保持され、セクションベースは既存アディエンドが ld-prime でエンコード不可な場合にのみローカルアンカーに置き換えられます
- release/10.0 ブランチ向けのバックポートで、メインPR は dotnet/runtime のメインリポジトリに既に統合されています
#132170 [Wasm RyuJIT]: Remove more unreachable NYI_WASM entries
- 作成者: @adamperlin
- 作成日時: 2026年08月11日 21:35:41(UTC)
- マージ日時: 2026年08月12日 17:36:22(UTC)
- ラベル: area-CodeGen-coreclr
概要
WebAssembly RyuJIT コンパイラにおいて、到達不可能な NYI_WASM(Not Yet Implemented for WebAssembly)エントリを削除し、コード構造を整理するPRです。genUpdateVarReg メソッドを codegencommon に移動し、HAS_FIXED_REGISTER_SET プリプロセッサ条件の整理を行っています。
変更内容
- codegencommon.cpp:
genUpdateVarRegの定義を共通コード領域に追加(+17行) - codegenwasm.cpp: 到達不可能な NYI_WASM エントリの削除(-14行)
- codegenlinear.cpp: HAS_FIXED_REGISTER_SET ifdef の整理及び NYI_WASM 関連コードの削除(-18行)
- codegen.h, codegeninterface.h: メソッドシグネチャの宣言調整(+6行)
- instr.cpp, treelifeupdater.cpp: 小規模な整理(計+6行)
パフォーマンスへの影響
影響なし。これはコンパイラの内部実装における到達不可能なコードパスの削除と構造の整理であり、実行時の動作やパフォーマンスに変化はありません。
関連Issue
なし
その他
このPRはWebAssembly ターゲットに特化した整理で、RyuJIT コンパイラバックエンドの保守性向上を目的としています。公開APIへの変更はありません。
#132169 [cDAC] Fix bugs in x86 unwinder
- 作成者: @rcj1
- 作成日時: 2026年08月11日 21:01:07(UTC)
- マージ日時: 2026年08月12日 06:53:46(UTC)
- ラベル: area-Diagnostics-cdac
概要
cDAC(Common Data Access Components)のx86スタックアンワインダーにおける複数のバグを修正します。ESP フレームのプロローグでのレジスタ追跡順序、EBPフレームのポインタ計算、命令デコーディングロジックの不正確さを是正し、スタックアンワインド時のレジスタ/スタック再構成の精度を向上させます。
変更内容
- X86Unwinder.cs: ESP フレームプロローグ内のレジスタ追跡順序を修正(逆順でイテレーション)、EBP/ダブルアライン保存レジスタポインタ計算を修正、EBP フレームプロローグの ESP 復元をリターンアドレススロットを指すよう修正、ModRM バイトチェック命令デコーディングヘルパーの修正、符号付き imm8 エンコーディング対応の即値"圧縮"検出を修正
- StackWalkTests.cs: EBP フレームプロローグのアンワインドをテストする新規ユニットテストを追加
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
レビューコメントにより、以下の懸念事項が指摘されています:
- x86 アンワインダーの単体テストカバレッジが不足しており、ESP フレームプロローグ(部分的なカリー保存レジスタプッシュ付き)やダブルアライン EBP フレーム、imm32 形式が必要なスタック調整を含むケースの回帰テストが推奨されています
- 追加されたテストで、未実行のプッシュ命令に対応するスタックスロットに値を書き込む際、現在の値と異なるセンチネル値を使用することで検出精度向上が推奨されています
#132166 Revert "JIT: cache the wasm image base in a local"
- 作成者: @adamperlin
- 作成日時: 2026年08月11日 20:34:54(UTC)
- マージ日時: 2026年08月12日 17:38:21(UTC)
- ラベル: area-CodeGen-coreclr
概要
PR #131369で導入されたWebAssembly イメージベースのローカル変数キャッシング機能を元に戻すもの。PR #132029でグローバルインデックスをそのサイズまで縮小した結果、global.get <imageBase>とlocal.get <cached image base>のコスト(どちらも2バイト)が同じになったため、キャッシング機能は不要になった。
変更内容
- codegen.h / compiler.h: イメージベース関連のフィールド定義を削除
- codegenwasm.cpp: イメージベースのローカル変数初期化コードを削除
- emitwasm.cpp / emitwasm.h: イメージベースのローカルキャッシュ機構を削除
- regallocwasm.cpp / regallocwasm.h: レジスタ割り当てロジックからキャッシュ関連の処理(31行分)を削除
- flowgraph.cpp: フローグラフ生成時のキャッシュ初期化処理を削除
パフォーマンスへの影響
影響なし。本変更後のglobal.getアクセスは、キャッシング機能を使用していた時期と同一のコスト(2バイト)となるため、パフォーマンスの差異はない。ただしコード複雑性の削減により保守性が向上。
関連Issue
#131369(元の変更)、#132029(グローバルインデックス最小化)
その他
このリバートは#132029の最適化結果に基づいており、不要になったキャッシング機構を削除することでコード簡潔性を向上させるもの。WebAssemblyコード生成パイプライン内部の変更で、公開APIには影響なし。
#132158 Preserve the V1 async-profiler stitch boundary
- 作成者: @steveisok
- 作成日時: 2026年08月11日 19:01:31(UTC)
- マージ日時: 2026年08月12日 16:31:37(UTC)
- ラベル: area-System.Threading.Tasks
概要
async-profiler V1の「stitch boundary」コントラクトを強化するPRです。AsyncProfilerAsyncStateMachineBox<TStateMachine>.MoveNextAsDispatcherにMethodImplOptions.NoInlining属性を追加して物理スタックフレームの保持を保証し、テストを拡張して命名要件と非インライン要件の両方を検証します。また、スタックベースのアサーション失敗時の診断情報を改善しています。
変更内容
- AsyncTaskMethodBuilderT.cs:
MoveNextAsDispatcherメソッドにMethodImplOptions.NoInliningを追加(実装側) - AsyncProfilerTests.cs: 共有ヘルパーを拡張して診断フレーム名をキャプチャし、アサーションヘルパーに渡す機能を追加;コントラクトチェック用に
MethodInfoを公開 - AsyncProfilerV1Tests.cs: V1境界テストを拡張して診断フレームをスルーし、
MoveNextAsDispatcherのNoInliningを強制;アサーション失敗メッセージを改善 - AsyncProfilerV2Tests.cs: resume-dispatchキャプチャプラムビングを更新して診断フレーム文字列を境界アサーションに含める
パフォーマンスへの影響
MoveNextAsDispatcherにNoInlining属性を追加することで、コンパイラはこのメソッドをインライン化できなくなります。ただし、このメソッドはasync state machineの再開時に呼び出される境界フレームであり、パフォーマンスへの悪影響は最小限と考えられます。むしろ、物理フレームの保持により、profiler/debuggerでのスタックトレース解析の正確性が向上します。
関連Issue
その他
本PRは、Debug/Release両ビルドでasync profiler V1のスタッチ境界フレームが物理フレームとして存在することを保証します。Debuggerプローブの検証により、Debug(class state machine)とRelease(struct state machine)の異なるコンパイル結果に関わらず、MoveNextAsDispatcherが物理フレームとして実行されることが確認されています。テスト失敗の診断情報はDeclaringType::Method形式で記載され、不明なフレームには<unknown-*>マーカーが明示されます。
#132151 System.IO: Make CanSeek independent of SafeFileHandle.Type
- 作成者: @jozkee
- 作成日時: 2026年08月11日 17:38:56(UTC)
- マージ日時: 2026年08月12日 20:39:02(UTC)
- ラベル: area-System.IO
概要
Windows SafeFileHandle.CanSeek の判定をキャッシュされた SafeFileHandle.Type 値に依存せず、GetFileType() の生の結果から直接判定するように変更します。シンボリックリンク上で開かれたハンドルの場合、Type へのアクセス順序による動作の不安定性を排除することが目的です。
変更内容
- SafeFileHandle.Windows.cs:
CanSeekの判定ロジックをKernel32.GetFileType(handle) == FILE_TYPE_DISKから直接導出するように変更。SafeFileHandle.Type(ディスクハンドルをSymbolicLink、Directoryなどに細分化するプロパティ) への依存性を排除 - GetFileType.Windows.cs: シンボリックリンク上のハンドル操作に関する回帰テストを追加。
SafeFileHandle.Typeへのアクセスの前後でFileStream.CanSeekの値が変わらないことを検証
パフォーマンスへの影響
影響なし
関連Issue
#132077(前の作業)
その他
- このPRは #132077 のフォローアップです
- Windows上でシンボリックリンクに対して
FILE_TYPE_DISKが報告される場合、それがSafeFileHandle.TypeでSymbolicLinkに細分化されるため、Typeをクエリするタイミング次第でCanSeekの値がキャッシュされていました - 生のファイルタイプを使用することで、アクセス順序に依存しない動作を復元しつつ、書き込み専用名前付きパイプの修正は保持されます
- Copilotコメントで、テスト160行目が値の妥当性についてより明示的なアサーションを追加すれば改善される可能性が指摘されています
#132150 Enable Helix job monitor across test pipelines
- 作成者: @akoeplinger
- 作成日時: 2026年08月11日 17:37:19(UTC)
- マージ日時: 2026年08月12日 10:13:55(UTC)
- ラベル: area-Infrastructure
概要
Azure DevOps テストパイプライン全体で Helix Job Monitor パターンを有効化し、Helix 提出タスクの同期待機を解消する変更。各パイプラインに monitor ジョブを追加し、useHelixMonitor パラメータを使用して out-of-band モニタリングを opt-in する。共有テンプレートの互換性を保つため、デフォルトでは enableHelixJobMonitor: false に設定。
変更内容
55個の YAML パイプラインファイルを更新:
- monitor ジョブ追加:
helix-job-monitor.ymlを各パイプラインに追加し、enableHelixJobMonitor: trueで monitor を有効化 - useHelixMonitor パラメータ伝播:標準 Helix テンプレートに
useHelixMonitorパラメータを追加・伝播させ、提出ジョブが fire-and-forget で動作可能に - 対象パイプライン:
- CoreCLR テスト全般(ci.yml、crossgen2系、r2r系、libraries-jitstress系など)
- Runtime プラットフォーム別(iOS、Android、WebAssembly、NativeAoT など)
- Libraries outerloop テスト
- 除外対象:build-only や非 gating(
shouldContinueOnError)の提出は同期のまま
パフォーマンスへの影響
改善:
- ビルドエージェントの待機時間を大幅削減
- 例:
runtime-extra-platformsbuild 1544136 で 36 個の Helix 提出タスク中 1 時間以上の待機あり - 例:
runtime-coreclr gcstress-extrabuild 1545563 で 50 分~4 時間の待機あり - 例:
runtime-nativeaot-outerloopbuild 1521226 で 22 個の Helix 提出タスク
- 例:
- monitor ジョブへ待機を集約し、提出後エージェントが解放される
- 集中化された結果報告とリトライ動作は保持
関連Issue
その他
- 55個の YAML ファイルを構文チェック済み(
git diff --check合格) - 共有テンプレート(jit-hardware-intrinsics-common.yml、wasi-wasm-coreclr テンプレート)は
useHelixMonitorパラメータをデフォルトfalseで追加し、backward compatible を維持 - 診断とSuperPMI等の特殊な提出フローは対象外
#132148 Limit buffer size for CommandStream
- 作成者: @iremyux
- 作成日時: 2026年08月11日 17:18:00(UTC)
- マージ日時: 2026年08月12日 09:31:45(UTC)
- ラベル: area-System.Net
概要
CommandStreamのFTP制御チャネル応答バッファに上限を設定し、サーバーからの過度に長い応答に対して早期に失敗するようにします。MaxResponseLength(4KB)の制限を導入し、超過時にWebExceptionStatus.ServerProtocolViolationをスロー することで、無制限のバッファリングを防止します。
変更内容
- CommandStream.cs: FTP制御チャネルの累積応答長に4KBの上限を設定し、超過時に
WebExceptionStatus.ServerProtocolViolation例外をスロー - FtpWebRequestTest.cs: FTPグリーティング/応答が最大長を超える場合に
ServerProtocolViolationがスローされることを検証する新しいループバック回帰テストを追加 - Strings.resx: エラーメッセージリソースを追加(3行)
パフォーマンスへの影響
影響なし(メモリバッファの上限設定により、悪意のあるサーバーによるメモリ枯渇攻撃を防止)
関連Issue
その他
この変更はセキュリティ関連の修正であり、無制限のバッファ蓄積によるメモリ枯渇攻撃を軽減します。MaxResponseLengthの4KBという制限は標準的なFTPプロトコル応答には十分な容量です。
#132141 Fix interpreter delegate calls through shuffle thunks
- 作成者: @BrzVlad
- 作成日時: 2026年08月11日 16:12:16(UTC)
- マージ日時: 2026年08月12日 10:20:11(UTC)
- ラベル: area-CodeGen-Interpreter-coreclr
概要
インタープリタのデリゲート呼び出し時に、shuffle thunks経由で渡されたアドレスがNonVirtualEntry2MethodDescでアサーション失敗を起こす問題を修正しました。StubLinker生成のwrapperスタブとshuffle thunksをJITコードマネージャーで追跡できるようになったため、これらのスタブ種類を認識して適切にnullを返すようにしました。
変更内容
- src/coreclr/vm/method.cpp:
NonVirtualEntry2MethodDescにスタブコードブロック種の認識ロジックを追加STUB_CODE_BLOCK_WRAPPER_STUBとSTUB_CODE_BLOCK_SHUFFLE_THUNKを認識してNULLを返却JitCodeToMethodInfo失敗後にスタブコードブロック種をクエリして非メソッドフォールバックパスを使用するよう対応- RangeListセクションの
StubCodeBlockKindをキャッシュして重複呼び出しを削減
パフォーマンスへの影響
キャッシング処理によりGetCodeBlockKind()の重複呼び出しが削減されるため、スタブ処理のパフォーマンスが微改善される可能性があります。
関連Issue
#131903の回帰修正
その他
- インタープリタパイプラインでのアサーション失敗(
NonVirtualEntry2MethodDesc failed)を解決 - 管理対象メソッド本体に直接マッピングされないエントリポイントに対する既存の非メソッドフォールバック機構を活用することで、アサーション例外を回避
#132136 Fix Unix file descriptor assertion
- 作成者: @Copilot
- 作成日時: 2026年08月11日 15:11:55(UTC)
- マージ日時: 2026年08月12日 17:17:07(UTC)
- ラベル: area-System.IO
概要
Unixファイルディスクリプタのアサーションが可変的なソフト開きファイル制限(RLIMIT_NOFILE)を有効性チェックの上限として使用していた問題を修正します。非負値チェックのみを保持し、ソフトリミット変更後のハンドル操作を正しく処理できるようにしました。
変更内容
- pal_utilities.h:
ToFileDescriptor()メソッドから_SC_OPEN_MAXベースの上限アサーションを削除。非負値チェックのみ保持 - System.IO.FileSystem.Tests.csproj: Unix向け回帰テストと
RLIMIT相互運用定義をテストプロジェクトのコンパイル対象に追加 - Dup2.Unix.cs: ファイルディスクリプタ複製後に
RLIMIT_NOFILEを低下させ、その後RandomAccess.Writeで書き込みを実行する回帰テストを新規追加
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
このPRはUnix環境でのdup2()システムコール使用時の問題を対処しています。dup2で複製されたファイルディスクリプタが、その後のリソース制限変更(RLIMIT_NOFILEの低下)があった場合でも、SafeFileHandleを通じたRandomAccess.Writeが正しく動作することを保証するテストが追加されました。
#132134 DispatchResolve: Avoid clobbering t1 in RhpInterfaceDispatch
- 作成者: @maximmenshikov
- 作成日時: 2026年08月11日 14:25:00(UTC)
- マージ日時: 2026年08月12日 05:14:24(UTC)
- ラベル: community-contribution area-NativeAOT-coreclr arch-riscv
概要
RISC-V 64ビット環境で RhpInterfaceDispatch のスタブコード内における tail 疑似命令の使用を修正しました。tail 疑似命令の展開時に t1 レジスタが上書きされていたため、ディスパッチセルアドレスが破壊されていた問題を解決しています。t2 レジスタを経由した手動のテイルジャンプに変更することで、RhpInterfaceDispatchSlow の実装と一貫性を保っています。
変更内容
src/coreclr/nativeaot/Runtime/riscv64/DispatchResolve.SRhpInterfaceDispatch内でtail疑似命令を t2 レジスタを用いた手動テイルジャンプに変更- これにより t1 の上書きが回避され、ディスパッチセルアドレスが正しく保持される
パフォーマンスへの影響
影響なし
関連Issue
なし
その他
本修正は RISC-V 64ビット環境における インターフェースディスパッチの正確性に関わる修正です。RhpInterfaceDispatchSlow の既存実装との整合性を取るための変更となっています。
#132126 Disable Runtime_129681 CrossGen2 testing
- 作成者: @kkokosa
- 作成日時: 2026年08月11日 09:49:20(UTC)
- マージ日時: 2026年08月12日 21:12:31(UTC)
- ラベル: area-ReadyToRun
概要
GCリグレッション テスト Runtime_129681 が CrossGen2 での R2R コンパイル時に失敗する問題を修正します。このテストは 64 MiB の GC ヒープ ハード リミットを設定していますが、CrossGen2 は 6 GiB のリージョン予約が必要となるため競合が発生します。CrossGen2 のopt-out により、R2R CI ジョブではリグレッション テストを実行し続けながらコンパイル時の失敗を回避します。
変更内容
- Runtime_129681.csproj:
<CrossGenTest>false</CrossGenTest>を追加し、このテストの CrossGen2/R2R コンパイルを無効化
パフォーマンスへの影響
影響なし
関連Issue
その他
- 検証済み: テスト実行時に CrossGen2 コンパイラが呼び出されず、期待値(100)と実行結果(100)が一致することを確認
- 別途検討事項として、
DOTNET_GCStress=0xCをDOTNET_gcConcurrent=0で置き換えることで、macOS での起動失敗(#132045)への対応が可能な可能性がある旨が記載されている
#132124 Use CRLF for chunked response framing test
- 作成者: @Copilot
- 作成日時: 2026年08月11日 09:23:06(UTC)
- マージ日時: 2026年08月12日 08:10:49(UTC)
- ラベル: area-Infrastructure
概要
HTTP/1.1パーサーが厳密なCRLF準拠を行うようになったため、チャンク応答フレーミングテストを更新しました。テストが生成していた不正なLF区切り文字をCRLFに統一し、RFC準拠のパーサー動作に対応させます。チャンクサイズと読み込みパスのカバレッジは維持されます。
変更内容
- src/libraries/Common/tests/System/Net/Http/HttpProtocolTests.cs
- チャンク応答フレーミングテストのlineEndingループを、有効なCRLF(
"\r\n")のみに限定 - テストデータの修正で、HTTPプロトコルパーサーのRFC準拠検証に対応
- チャンク応答フレーミングテストのlineEndingループを、有効なCRLF(
パフォーマンスへの影響
影響なし
関連Issue
その他
- テスト固有の変更であり、実装コードへの影響なし
- 既存テストの理論的カバレッジ(チャンクサイズ範囲と同期/非同期ストリーム消費)は維持
- HTTP/1.1のチャンク転送エンコーディングでRFC 7230に準拠するパーサーが、不正なLF区切り文字を拒否するようになったための対応
- ステータス行とヘッダー行のLFカバレッジは変更されず
#132122 Type definitions are loaded by IDE out of the box
- 作成者: @ilonatommy
- 作成日時: 2026年08月11日 09:08:15(UTC)
- マージ日時: 2026年08月12日 09:02:21(UTC)
- ラベル: arch-wasm area-Build-mono
概要
WebAssembly SDK の TypeScript 型定義ファイル(dotnet.d.ts)の配置先を変更し、IDE の型解決を改善するもの。従来は wwwroot 直下に配置されていたため IDE が自動解決できなかったが、ランタイムアセット(dotnet.js)と同じ wwwroot/_framework ディレクトリに配置することで、IDE が即座に型定義を認識できるようになります。
変更内容
- Microsoft.NET.Sdk.WebAssembly.Browser.targets:
dotnet.d.tsをwwwroot/_framework/dotnet.d.tsにコピーするビルドターゲット_EnsureDotnetTypeScriptDefinitionsを実装。公開時にもdotnet.d.tsをwwwroot/_frameworkディレクトリに含める - WasmApp.Common.targets: ドキュメントコメントの更新
- WasmTemplateTests.cs:
dotnet.d.tsの新しい配置先と公開動作を検証するテスト更新
パフォーマンスへの影響
影響なし
関連Issue
#120097(このPRに続く変更)
その他
注意点: Copilot レビューで指摘されている通り、現在の実装では !Exists('$(_DotnetTypesDestPath)') 条件により、dotnet.d.ts ファイルが一度作成されるとその後更新されません。SDK/ランタイム更新時に新しい型定義が反映されない可能性があります。将来的には、インクリメンタルビルドターゲット(Inputs/Outputs)に基づいた実装への改善が望ましいと考えられます。
#132119 [release/8.0-staging] Disable timing out EncryptedXml encoded-DTD tests
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月11日 08:11:58(UTC)
- マージ日時: 2026年08月12日 09:14:13(UTC)
- ラベル: Servicing-approved area-System.Security
概要
EncryptedXmlの encoded-DTD テストのタイムアウト問題を無効化するパッチです。このPRは #131955 の release/8.0-staging ブランチへのバックポートとなります。
変更内容
- src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs: encoded-DTD 関連のテストに対するタイムアウト無効化処理を追加(+2行)
パフォーマンスへの影響
テストのタイムアウト設定に関する変更であるため、テスト実行時間への影響の可能性がありますが、詳細な数値は提供されていません。
関連Issue
その他
- このPRはバックポートであり、テンプレートの検証項目(Customer Impact、Regression、Testing、Risk)は記入されていません
- .NET 8.0 向けのサービシング更新(release/8.0-staging ブランチ)として作成されています
#132118 [release/9.0-staging] Disable timing out EncryptedXml encoded-DTD tests
- 作成者: @github-actions[bot]
- 作成日時: 2026年08月11日 08:11:35(UTC)
- マージ日時: 2026年08月12日 09:14:59(UTC)
- ラベル: Servicing-approved area-System.Security
概要
EncryptedXmlの符号化DTDテストのタイムアウト問題を解決するためのバックポート。release/9.0-stagingブランチに対して、#131955の変更を取り込むものです。
変更内容
src/libraries/System.Security.Cryptography.Xml/tests/EncryptedXmlTests.cs: EncryptedXml符号化DTDテストのタイムアウトを無効化(+2行)
パフォーマンスへの影響
テストのタイムアウト制限が変更される可能性があり、テスト実行時間に影響する可能性がありますが、具体的な数値は提供されていません。
関連Issue
その他
- このPRはバックポート対応です(release/9.0-stagingブランチが対象)
- 変更内容の詳細(何がタイムアウト問題の原因で、どのように対処されたか)は提供されていません
- テンプレートのCustomer Impact、Regression、Testing、Risk欄は未記入です
#132112 Move GB18030 tests to feature test projects
概要
GB18030準拠テストをスタンドアロンのCompliance.Testsプロジェクトから、テスト対象機能の専用テストプロジェクトへ移動しました。これにより、NativeAOT Mobile設定でGB18030正規表現テストがRoslyn依存関係をコンパイランス専用アプリケーションに持ち込むことを防ぎ、各機能のテストプロジェクトの既存プラットフォーム設定を継承できるようになります。
変更内容
テスト再配置: GB18030テストを以下6つの機能別プロジェクトに移動
System.Text.RegularExpressions.Tests(正規表現)System.Text.Encoding.CodePages.Tests(エンコーディング)System.Globalization.Tests(グローバライズ)System.Runtime.Tests(文字列)System.IO.Tests(ファイル/ディレクトリ)System.Console.Tests(コンソール)
共有リソース: 共通ヘルパーおよび準拠データは
GB18030.Shared.projitemsで保持され、各プロジェクトで共有プラットフォーム検査: コンソールテストは、Windows OSバージョン チェックに依存せず、プラットフォームが
Console.InputEncodingとしてGB18030を受け入れるかをプローブ検査に変更スコープ制限:
CharUnicodeInfo固有のヘルパーはグローバライズテストプロジェクトに限定
パフォーマンスへの影響
影響なし
関連Issue
その他
- コンソール、文字列、IO、グローバライズテストはCore専用テストホストに移行し、.NET Framework上での実行は廃止。正規表現とエンコーディングテストは.NET Framework互換ホストを保持
- 移動したコンソールテストは
System.Console.Testsの既存Android/Bionic除外設定を継承 - 全テスト: 60,190件合格、0件失敗、0件スキップ
#132101 Modernize JIT Directed merged runners
- 作成者: @jkoritzinsky
- 作成日時: 2026年08月10日 23:52:13(UTC)
- マージ日時: 2026年08月12日 16:53:19(UTC)
- ラベル: area-CodeGen-coreclr
概要
Directed JIT テストの merged runners を最新化するリファクタリング。広範な glob パターンで分割されていた Directed_1、Directed_2、Directed_3 を、コンパイル設定に基づいた 5 つの明示的な build 変種(Directed_1、Directed_d、Directed_do、Directed_r、Directed_ro)に統合。プロセス分離が不要な C# ソースを runner に直接マージし、プロセス分離やメタデータが必要なプロジェクトは保持。テスト構成の透明性向上とインクリメンタルマージの効率化が目的。
変更内容
- プロジェクト再構成: 個別の
.csprojファイル(Complex1、Complex2、Simple1、Simple2 など)を削除し、明示的なソースリストに置き換え - テスト分類: Optimize 設定と DebugType(PdbOnly など)に基づいて 5 つのビルド変種に統合
- 属性追加: Priority-1 で非プロセス分離の
[Fact]テストに[OuterLoop]属性を付与 - ソースマージ: プロセス分離不要なテストは runner に直接統合
- PhysicalPromotion 対応: JIT 環境分離を保持し、プロセス外テスト非対応のモバイルプラットフォームではソースを直接コンパイル
- メタデータ非伝播: merged runners はプラットフォームメタデータを推論・伝播しない
パフォーマンスへの影響
影響なし(テスト構成とビルド効率の改善であり、実行時パフォーマンスへの直接的な影響なし)
関連Issue
なし
その他
- 300 ファイル以上の変更を含む大規模なリファクタリング
- 検証:
src\tests\build.cmd -Dir JIT\Directed x64 Checked -Priority 1で全 5 つの merged runners がパス - 内部テスト基盤の変更であり、公開 API への影響なし
#132079 Fix SslStream client certificate credential caching
- 作成者: @rzikm
- 作成日時: 2026年08月10日 14:29:34(UTC)
- マージ日時: 2026年08月12日 11:52:47(UTC)
- ラベル: area-System.Net.Security
概要
Windows上のSslStreamにおいて、ClientCertificateContextを通じて提供されたクライアント証明書の認証情報が、意図せず匿名認証情報キャッシュに格納される脆弱性を修正しました。匿名認証情報の取得中にClientCertificateContextを一時的に切り離し、取得完了後に復元することで、後続の接続が誤ったキャッシュ認証情報を再利用するのを防ぎます。
変更内容
- SslStream.Protocol.cs: 匿名認証情報取得時に
ClientCertificateContextを一時的に切り離し、その後復元する処理を追加(+8行) - SslStreamCredentialCacheTest.cs: Windows専用の回帰テストを追加。
ClientCertificateContextを使用した接続後、異なるホストへの証明書なし接続が以前のキャッシュを再利用しないことをTLS 1.2/1.3で検証(+63行)
パフォーマンスへの影響
影響なし
関連Issue
その他
- Windows専用の修正です(TLS実装がプラットフォーム依存)
- ローカル検証済み:System.Net.Securityプロダクトビルド成功、回帰テスト2件パス、既存テストスイート5,279件中ほぼ全テスト成功(1件の無関連の失敗のみ)
- Copilotレビューから、多言語環境での非不変カルチャー対応についてのコメントが抑制されています(RemoteExecutor呼び出しで
((int)protocol).ToString()の文化依存性に関する指摘)
#132076 Restore isolation for GC Collect tests
- 作成者: @kkokosa
- 作成日時: 2026年08月10日 13:19:33(UTC)
- マージ日時: 2026年08月12日 06:38:17(UTC)
- ラベル: area-GC-coreclr
概要
PR #126108で削除されたGCテストのプロセス分離機能を復元します。Collect、Collect0、Collect1テストは世代別アサーション検証のため、プロセス全体のGC状態が他のテストの影響を受けない分離状態を必要としています。ピン留めハンドルの累積によるテスト失敗(#131721、#131893)を解決するため、アウトプロセス実行に戻します。
変更内容
- Collect.csproj: プロセス分離設定を追加(+2行)
- Collect0.csproj: プロセス分離設定を追加(+4行)
- Collect1.csproj: プロセス分離設定を追加(+4行)
各テストプロジェクトファイルにプロセス分離を有効にするプロパティが復元されました。
パフォーマンスへの影響
影響なし(テストの分離レベル変更であり、機能実装のパフォーマンス修正ではない)
関連Issue
#131721 #131893 #126108(削除元PR)
その他
- 検証内容: Windows x64/x86 Checked モードでのコア実行テストおよび個別テストラッパー、マージ済みGC実行系での検証済み
- テスト失敗の原因: マージ実行時に複数テストからピン留めハンドルが累積され、GC世代別のアサーションが誤検出される現象を確認
- JitOptimizationSensitiveの非適用: 対象外実行やAddrOfPinnedObject除外時は10,000イテレーション無障害確認のため、カバレッジ維持のためJIT最適化依存マークは使用していない
#132011 Fix agentic workflow markers removed from safe outputs
- 作成者: @vitek-karas
- 作成日時: 2026年08月07日 15:32:49(UTC)
- マージ日時: 2026年08月12日 20:05:40(UTC)
- ラベル: area-skills
概要
GitHub Actions agentic workflowsが、安全な出力を投稿する際にHTML コメントが削除されることに対応したマーカー方式の変更です。従来のHTML コメント(<!-- ... -->)ベースの識別子を、safe-outputs.data構造化データまたは安定した表示用Markdownフィールドに置き換えました。これにより、複数回実行されるワークフロー間での信頼性の高い識別と重複排除が可能になります。
変更内容
ci-failure-fix: Fix PR・help-wanted PR・ハンドオフコメントに構造化識別子を追加。重複排除ロジックを改善して固定位置の仮定を削除し、古いマーカーとの後方互換性を維持closed-issue-reference-check: advisory コメントに構造化識別子を追加。チェック前処理で新旧のマーカーを認識ci-failure-scan: KBE (Knowledge Base Entry) の作成ガイダンスと検証済みマッチ数を折りたたみセクションに移動。JSONブロックは正確に1つのみを保持ci-failure-scan-feedback: 新しいci-failure-fix識別子を読取し、古いマーカーとの互換性も保証。トラッカーメタデータを表示用折りたたみセクションに保存- 共有ワークフローガイダンス: HTML コメント削除動作を文書化し、
safe-outputs.dataと表示用フィールドの使い分けを説明 - ワークフロー世代更新: gh-aw v0.83.5での再生成(.lock.ymlファイル更新)
パフォーマンスへの影響
影響なし
関連Issue
その他
- poutineとzizomarによる検証済み
- KBEテンプレートが正確に1つのJSONブロックを保持していることを確認
- 従来の表示用マーカーは引き続き認識されるため、既存のワークフロー出力との互換性を維持
#131835 Rename INS_FLGAS in consistent style for xarch emitter.
- 作成者: @Ruihan-Yin
- 作成日時: 2026年08月04日 22:05:58(UTC)
- マージ日時: 2026年08月12日 22:19:03(UTC)
- ラベル: area-CodeGen-coreclr Priority:1 community-contribution
概要
xarch(x86/x64)エミッタの命令フラグ定数を INS_FLAGS_* の統一命名規則に標準化するネーミングクリーンアップです。Issue #128266 の解決に向けた短期的な改善であり、より抜本的な insFlags の enum クラス化は .NET 12 での大規模リファクタリングに延期されています。
変更内容
- instr.h: xarch
insFlagsenum の定数をINS_FLAGS_*命名規則にリネーム(x87/AVX/APX/疑似名フラグと関連マスクを含む) - instr.cpp:
instIsFP()/instHasPseudoName()の内部実装でリネームされたフラグを参照 - emitxarch.cpp: EVEX/APX および AVX ヘルパー述語でリネームされたフラグを使用するよう更新
- instrsxarch.h: 命令メタデータテーブルのフラグ式を新しい識別子で更新
パフォーマンスへの影響
影響なし
関連Issue
その他
本PR は JIT コンパイラ内部のコード生成ロジック(命令フラグ定数)に限定した変更であり、public API や言語機能への影響はありません。ARM コードパスでは insFlags の意味が異なるため、今回の変更対象外となっています。
#131738 Zip centraldirectory Hardening
- 作成者: @alinpahontu2912
- 作成日時: 2026年08月03日 13:14:42(UTC)
- マージ日時: 2026年08月12日 12:12:03(UTC)
- ラベル: area-System.IO.Compression
概要
ZIPファイルの中央ディレクトリヘッダ解析時の検証を強化し、不正な形式のメタデータから保護します。シーク可能なストリームで、ファイル名/拡張情報/コメントの可変長データが残り容量を超える場合に早期終了することで、不要なメモリ確保を防ぎます。
変更内容
- src/libraries/System.IO.Compression/src/System/IO/Compression/ZipBlocks.cs
ZipCentralDirectoryFileHeader.TryReadBlockメソッドに、可変長末尾データの長さがストリームの残り容量を超える場合のチェックを追加- 不正なヘッダデータを検出した場合、
ArrayPoolレンタル前にfalseを返すように変更
パフォーマンスへの影響
改善あり:
不正な形式のZIPファイル処理時に不要なメモリ確保(ArrayPoolレンタル)を回避し、メモリ効率を改善します。正常なファイル処理への影響はなし(事前チェックのため)。
関連Issue
なし
その他
内部実装(ライブラリの復元/検証ロジック)の変更で、公開APIへの影響はありません。
#131492 [wasm] Pass Int128, Decimal128 and wide vectors by value
- 作成者: @lewing
- 作成日時: 2026年07月28日 20:27:17(UTC)
- マージ日時: 2026年08月12日 19:08:10(UTC)
- ラベル: arch-wasm area-crossgen2-coreclr
概要
WebAssemblyでInt128/UInt128、Decimal128、Vector256<T>、Vector512<T>を値渡しで正しく扱うため、署名エンコーディングを変更しました。これらの型をwasm C ABIの規約に従い複数のwasmパラメータで渡すようにします。従来のS<N>エンコーディングは曖昧で(Int128とGuidが同じS16になる)、クラウドコンパイラでの誤コンパイルを引き起こしていました。
新しいエンコーディング規格:
l2=Int128/UInt128/Decimal128(16バイト)V2=Vector256<T>(32バイト)V4=Vector512<T>(64バイト)
変更内容
- WasmLowering.cs: パラメータの多スロット分類と新エンコーディング(スロット文字+昇格係数)の実装。戻り値は従来の
S<N>(retbuf経由)のまま - runtime署名エンコーディング (vm/wasm/helpers.cpp): 多スロット対応、フレームレイアウト生成
- R2Rサンク(複数ファイル): 多スロット引数を適切にマーシャリング(スロット単位での入出力)
- JIT変更 (targetwasm.cpp, codegenwasm.cpp, compiler.cpp): 構造体引数をサイズに応じて複数wasm値に分割、多スロット戻り値をretbuf強制
- 署名キャッシュ分離 (CompilerTypeSystemContext.Wasm.cs): 昇格型専用キャッシュで曖昧性を排除
- WasmAppBuilder: 相互運用署名での多スロット型を拒否(
WASM0068報告) - テスト追加: 47件の
WasmArgumentLayoutTestsでエンコーディング安定性と曖昧性回避を検証
パフォーマンスへの影響
影響なし。エンコーディング規格の修正で、正しいC ABI準拠への適合が目的。
関連Issue
なし
その他
- 作成者による検証:R2R=0/1両方でbrowser wasm Release/Checked環境でテスト済み。
Int128.Equalsの誤検出(False返却)とCompareToの誤った±1返却はこの変更で解決 - JIT/EEインターフェースGUID更新
- 3つのエンコーダ(crossgen2、runtime、WasmAppBuilder)が完全に一致する必要あり(署名文字列がサンク識別子)
- 従来の
#131421での「アライメント修正」アプローチを置き換え - Copilotによるコード査閲で、多桁スロットカウント時の署名曖昧性に関する低信度コメントあり
#131457 TlsContext/TlsSession: document lifetime, tighten AttachSocket
- 作成者: @wfurt
- 作成日時: 2026年07月28日 10:56:00(UTC)
- マージ日時: 2026年08月12日 08:58:23(UTC)
- ラベル: area-System.Net.Security
概要
TlsContextとTlsSessionのドキュメント整備とAPI整形を行う小規模なクリーンアップPR。TlsContextのライフタイム契約を明確にし、TlsSession.AttachSocketのアクセシビリティをinternalからprivate protectedに厳格化。公開APIの変更なし、動作変更なし(Debug.Assert追加のみ)。
変更内容
- TlsContext.cs: XML remarksを更新し、所有権ルールを明記。ネイティブハンドル(
SSL_CTX、SChannel資格情報)はref-countedだが、SslStreamCertificateContextはIDisposableではなく参照カウントを持たないため、コンテキスト破棄時に内部生成された証明書チェーンが解放される可能性がある点を文書化。呼び出し側が、その派生セッション使用中はコンテキストをアルive状態で保つ必要があることを明示。 - TlsSession.cs:
AttachSocketメソッドのアクセシビリティを厳格化し、セッションが初期状態(既存ソケットハンドルなし、マネージドSocket wrapperなし、PAL security contextなし、未破棄)であることを確認するDebug.Assertを追加。メソッドがTlsSocketSessionのコンストラクタではなくOnContextInitializedから呼ばれることを示すコメントを修正。
パフォーマンスへの影響
影響なし
関連Issue
その他
本PRは#130366のフォローアップ。より大規模なSslStream/TlsSession統合(SslStreamをTlsBufferSession上の薄いアダプタに変更し、並行するPAL glueを廃止)は別の専用PRで対応予定。
#131209 [release/8.0-staging] Skip empty iOS NativeAOT Helix submission
- 作成者: @davidnguyen-tech
- 作成日時: 2026年07月22日 12:42:10(UTC)
- マージ日時: 2026年08月12日 09:12:17(UTC)
- ラベル: Servicing-approved area-Infrastructure
概要
.NET 8 servicing ブランチの iOS NativeAOT ビルドにおいて、テストプロジェクトが IgnoreForCI で無効化されたことに伴い、空の Helix 送信ステップが MSB4184 エラーで失敗していた問題を修正します。iOS NativeAOT ビルド自体は継続し、Helix 送信ステップのみを条件付きでスキップするようにします。tvOS には影響なし。
変更内容
eng/pipelines/runtime.yml:runtime定義内のsend-to-helix-mobileステップにosGroup == 'iOS'かつビルド/ライブラリ/coreclr に変更がある場合のみ実行する条件を追加(7行追加、4行削除)eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml:runtime-extra-platforms定義内の同ステップに同様の条件を追加(2行追加)
パフォーマンスへの影響
影響なし
関連Issue
その他
- 変更範囲: パイプライン YAML のみ。製品コード、パッケージ、テスト実装に変更なし
- スコープ:
osGroupで iOS NativeAOT ビルドのみに限定 - 後方互換性: 既存の
librariesContainsChange/coreclrContainsChange/isRollingBuildゲーティングを保持し、and(...)でラップ - テスト結果: iOS および tvOS の両ビルドが正常に完了。iOS の Helix ステップはスキップ、tvOS は正常に送信(1 work item、3.3M ペイロード)
- リスク: Low。CI インフラのみの変更で、コメントに「テストが再度有効化される場合は除外を削除」との注記あり
- 背景: #130473 で iOS デバイステストが
IgnoreForCIとして無効化されたためartifacts/helix/testsディレクトリが生成されず、release/8.0 のsendtohelix-mobile.targets:87がこのディレクトリを無保護に参照しようとして失敗していた
#129926 Consolidate unix platforms flavors in S.N.Http
- 作成者: @am11
- 作成日時: 2026年06月27日 13:10:13(UTC)
- マージ日時: 2026年08月12日 09:07:13(UTC)
- ラベル: area-System.Net.Http community-contribution
概要
Unix プラットフォーム対応の統合化を進め、System.Net.Http ライブラリにおけるプラットフォーム固有の条件付きコンパイルを整理するもの。複数の Unix フレーバー(Linux、macOS、FreeBSD など)向けの実装を統合し、コード重複を削減する変更。
変更内容
- System.Net.Http.csproj: プラットフォーム定義を整理(+1/-4)
- HttpConnectionPool.Http3.cs: Unix プラットフォーム向けの条件付きコンパイルディレクティブを更新(+4/-4)
- HttpConnectionPoolManager.cs: 不要なプラットフォーム固有コードを削除(-6)
- System.Net.NetworkInformation: 新たに
NetworkAddressChange.UnknownUnix.csを追加し、Unix フレーバー共通の実装を整備(計+1)
パフォーマンスへの影響
影響なし
関連Issue
その他
- 内部実装の整理に関する変更
- 複数の Unix プラットフォーム(Linux、macOS、FreeBSD など)における共通実装の統合化により、メンテナンス性の向上を目指すもの
#129118 Validate invalid base type declarations in ILVerify
- 作成者: @pkuyo
- 作成日時: 2026年06月08日 06:04:57(UTC)
- マージ日時: 2026年08月12日 22:36:54(UTC)
- ラベル: area-Tools-ILVerification community-contribution
概要
ILVerifyにおいて、無効な基底型宣言の検証を追加しました。ILAsmがextends objectなどの無効な基底型を受け入れている場合でも、ランタイムがそのアセンブリを読み込めない問題に対応しています。このPRにより、InvalidBaseTypeエラーで無効な基底型宣言を検出するようになります。
変更内容
- EcmaSignatureParser.cs: 基底型検証ロジックを追加し、無効な型仕様(ValueType、オブジェクト型など)を基底型として使用する場合を検出
- TypeVerifier.cs: 基底型の検証処理を拡張し、ジェネリック型仕様を含む無効な基底型宣言をチェック
- VerifierError.cs: 新しい検証エラー種別
InvalidBaseTypeを追加 - BaseTypeTests.il: 無効な基底型宣言の検証テストを5つ追加(
extends object、ValueType基底、ジェネリックValueType基底など) - MalformedTypeSpecTests.il: 不正な型仕様関連のテストを追加
- Strings.resx: エラーメッセージを追加
- 仕様ドキュメント: Ecma-335拡張仕様を更新
パフォーマンスへの影響
影響なし
関連Issue
その他
- 本変更はILVerification(IL検証ツール)の機能拡張で、ランタイムコンパイラやコア機能には影響しません
- 内部実装の変更で、公開APIへの影響はありません
- 検証エラーは検出段階でのみ報告され、既存の有効なアセンブリには影響しません