[Mono] Null receiver in open virtual delegate invocation crashes the runtime
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 18/100
調査の方向性
The failure is a native SIGSEGV in mono_get_addr_compiled_method on Linux ARM64 and a klass assertion in class-accessors.c:73 under the WebAssembly interpreter, both during open virtual delegate invocation with a null receiver. Start from the test OpenDelegate.NullReceiverAfterWarmingUnrelatedVirtualDelegates in src/tests/CoreMangLib/system/delegate/VSD/OpenDelegate.cs and the Mono runtime's delegate invoke path. Done means the null-receiver call throws NullReferenceException on Mono and the SkipOnMono attribute can be removed.
索引モデルが issue の本文から書いたものです。
説明
Description
Invoking an open-instance delegate to a virtual method with a null receiver crashes Mono instead of throwing NullReferenceException.
This was exposed by OpenDelegate.NullReceiverAfterWarmingUnrelatedVirtualDelegates, added in dotnet/runtime#136949. The test creates delegates to virtual methods on two unrelated classes, warms both delegates with valid receivers, then invokes them with null receivers.
Reproduction
Use the test source before its Mono exclusion.
Run OpenDelegate.NullReceiverAfterWarmingUnrelatedVirtualDelegates on Mono. The first null-receiver invocation is:
Assert.Throws<NullReferenceException>(() => second(null, 1, 2, 3, 4));
Expected behavior
The invocation throws NullReferenceException, which the assertion catches. The test passes on CoreCLR.
Actual behavior
Reported CI failures in build 1667003:
- Mono Linux ARM64: native SIGSEGV in
mono_get_addr_compiled_methodduring the assertion’s lambda; process exits with code 134. - Mono WebAssembly interpreter: process aborts on the
klassassertion inclass-accessors.c:73.
These failures terminate the process rather than raising a catchable managed exception. Other Mono configurations have not been established.
Current mitigation
The test is excluded on Mono using method-level SkipOnMono; CoreCLR and sibling-test coverage remain enabled. Re-enable the test on Mono once null-receiver invocation throws the expected managed exception.
[!NOTE]
This issue description was drafted with GitHub Copilot.
- 主要言語
- C#
- スター
- 18.4k
- フォーク
- 5.8k
- 平均マージ
- 2日 19時間
- マージ済み PR(30日)
- 590
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
dotnet/runtime のほかの issue
-
area-Setup untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
dotnet/runtime#137376 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area-System.Memory untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
dotnet/runtime#137334 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
ImmutableSortedSet<T>.Builder: enumerating through IEnumerable<T> doesn't throw on modification and can return wrong items対応中かも @aw0lid が 3 日前に担当しました。 オープンarea-System.Collections
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
dotnet/runtime#137167 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
DbTransaction.SupportsSavepoints docs say Release/ReleaseAsync are expected to throw, but they are no-ops by design対応中かも @alaricd が 7 日前に担当しました。 オープンarea-System.Transactions untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
dotnet/runtime#137040 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
FileSystemGlobbing: Matcher throws ArgumentOutOfRangeException when the rootDir is the same value as the file対応中かも @makazeu が 7 日前に担当しました。 オープンarea-Extensions-FileSystem
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
dotnet/runtime#136989 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
bug emitter:client:csharp
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
microsoft/typespec#12572 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
needs-area-label
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 2 日以内に返信
-
AWS Lambda: KeyNotFoundException drops HTTP-triggered transactions when allowAllHeaders is disabledオープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
newrelic/newrelic-dotnet-agent#3949 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
area-networking
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
dotnet/aspnetcore#70545 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 87/100
メンテナーはふだん 1 日以内に返信