Skip to content

Fix async profiler overflow test's full-depth resume filtering. - #133854

Merged
lateralusX merged 1 commit into
dotnet:mainfrom
lateralusX:lateralusX/fix-issue-133812
Sep 15, 2026
Merged

lateralusX merged 1 commit into
dotnet:mainfrom
lateralusX:lateralusX/fix-issue-133812

Conversation

@lateralusX

Copy link
Copy Markdown
Member

Add a distinct non-inlined gated leaf and filter callstacks by its identity. Stack protection can queue remaining continuations after the leaf completes, producing valid shorter resumes that must not be checked against the full-depth expectation.

Require one leaf resume per iteration, each with 255 frames, and snapshot the leaf's method ID for Mono name resolution. Clarify that Mono interpreter tiering can change the code address while the profiler retains its cached ID.

Fixes #133812

Add a distinct non-inlined gated leaf and filter callstacks by its
identity. Stack protection can queue remaining continuations after
the leaf completes, producing valid shorter resumes that must not
be checked against the full-depth expectation.

Require one leaf resume per iteration, each with 255 frames, and
snapshot the leaf's method ID for Mono name resolution. Clarify that
Mono interpreter tiering can change the code address while the
profiler retains its cached ID.

Fixes dotnet#133812
Copilot AI lite review requested due to automatic review settings September 14, 2026 10:33
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).
13 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused test changes have no unresolved blocking issues.

Pull request overview

Updates the async profiler overflow regression test to distinguish full-depth leaf resumes from valid shorter continuations.

Changes:

  • Adds a distinct non-inlined gated leaf.
  • Snapshots the leaf method ID for Mono resolution.
  • Requires one 255-frame leaf resume per iteration.
File summaries
File Description
src/libraries/System.Runtime/tests/System.Threading.Tasks.Tests/System.Runtime.CompilerServices/AsyncProfilerV1Tests.cs Updates overflow test setup, filtering, and assertions.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

@lateralusX

Copy link
Copy Markdown
Member Author

/azp run runtime-libraries-interpreter

@lateralusX

Copy link
Copy Markdown
Member Author

/azp run runtime-nativeaot-outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

1 similar comment
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@lateralusX

Copy link
Copy Markdown
Member Author

/ba-g Test-only change confined to AsyncProfilerV1Tests.cs. HTTP timeout matches #133098; WebSocket cancellation matches #132031, fixed by #133199 after this CI run queued; interpreter assertion matches #133771. The affected System.Threading.Tasks.Tests suite passes on macOS ARM64 interpreter. NativeAOT linux-arm64 crashed in the separate System.IO.FileSystem.Tests executable with an IsUnwindable assertion in thread.cpp:707; this appears unrelated to the changed test assembly, but has not been matched to a current tracking issue

@lateralusX
lateralusX merged commit 630cdb6 into dotnet:main Sep 15, 2026
107 of 113 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 12.0-preview1 milestone Sep 16, 2026
jtschuster pushed a commit to jtschuster/runtime that referenced this pull request Sep 18, 2026
…et#133854)

Add a distinct non-inlined gated leaf and filter callstacks by its
identity. Stack protection can queue remaining continuations after the
leaf completes, producing valid shorter resumes that must not be checked
against the full-depth expectation.

Require one leaf resume per iteration, each with 255 frames, and
snapshot the leaf's method ID for Mono name resolution. Clarify that
Mono interpreter tiering can change the code address while the profiler
retains its cached ID.

Fixes dotnet#133812
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[ci-scan] Test failure: AsyncProfilerTests.StateMachineAsync_CallstackOverflow_PreservesFullDepth on osx-arm64 CoreCLR interpreter.

4 participants