Skip to content

Fix GC dynamic ETLX replay#2440

Merged
brianrob merged 3 commits into
microsoft:mainfrom
brianrob:brianrob-fix-gc-dynamic-etlx-replay
Jul 15, 2026
Merged

Fix GC dynamic ETLX replay#2440
brianrob merged 3 commits into
microsoft:mainfrom
brianrob:brianrob-fix-gc-dynamic-etlx-replay

Conversation

@brianrob

@brianrob brianrob commented Jul 14, 2026

Copy link
Copy Markdown
Member

PerfView 3.2.4 can throw ArgumentOutOfRangeException when GC Stats or Heap Analyzer replays GC/CommittedUsage events from ETLX. During conversion, FixupData() classifies the raw dynamic event and the ETLX persists the synthetic event ID, but the original dynamic payload envelope remains unchanged. On replay, the typed template therefore still needs to parse that envelope.

This change refreshes the payload layout in EventPayload only when processing a TraceLog. Raw ETW and EventPipe dispatch continue using the payload prepared by FixupData(), avoiding redundant parsing. Fixed-offset CommittedUsage fields also return safe defaults for truncated payloads.

Regression coverage includes valid ETLX replay without FixupData(), reused replay templates with distinct payloads, and malformed payload access through properties, PayloadValues, and ToXml.

Fixes #2438

brianrob added 3 commits July 14, 2026 16:03
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 38430826-404a-4dd2-a410-a64c3fc1c158
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 38430826-404a-4dd2-a410-a64c3fc1c158
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 38430826-404a-4dd2-a410-a64c3fc1c158
@brianrob
brianrob marked this pull request as ready for review July 15, 2026 00:00
@brianrob
brianrob requested a review from a team as a code owner July 15, 2026 00:00
@brianrob

Copy link
Copy Markdown
Member Author

@microsoft-github-policy-service rerun

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ArgumentOutOfRangeException opening nettrace GC stats and Heap analyzer

2 participants