Fix async profiler overflow test's full-depth resume filtering. - #133854
Conversation
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
|
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. |
There was a problem hiding this comment.
🟢 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
|
/azp run runtime-libraries-interpreter |
|
/azp run runtime-nativeaot-outerloop |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
1 similar comment
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
/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 |
…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
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