Skip to content

feat(native): Symbolicate flamegraph attachments - #126459

Draft
philprime wants to merge 2 commits into
masterfrom
philprime/flamegraph/symbolication
Draft

philprime wants to merge 2 commits into
masterfrom
philprime/flamegraph/symbolication

Conversation

@philprime

Copy link
Copy Markdown
Member

Adds native symbolication for version-1 event.flamegraph attachments behind organizations:flamegraph-attachments, using the existing event symbolication pipeline and attachment cache/objectstore flow. Attachments can trigger processing even when the associated event has no native stacktrace, and symbolication uses the attachment's own debug images.

Following the view-hierarchy deobfuscation pattern, attachment handling is separate from Symbolicator request orchestration. Resolved inline frames expand into caller-to-callee chains while preserving captured addresses, addressing modes, sample counts, and unresolved data. Completion state retains original frame and tree tables for safe retries and reprocessing. Each successful attachment is checkpointed before the next request without rewriting previously processed payloads.

The draft format is defined in getsentry/sentry-docs#19774. Input is bounded to 10 MiB and symbolication to the first 2,500 frame entries. This PR does not add scrubbing, JVM/ProGuard remapping, JavaScript/source-map remapping, or Relay changes.

Regression coverage includes real Symbolicator ingestion with both debug-file storage backends, objectstore attachments, inline expansion, reprocessing, and interrupted multi-attachment processing. The relevant native, symbolication-task, ingestion, and reprocessing suites passed 117 tests. Lint and commit hooks also passed.

Legal Boilerplate

Look, I get it. The entity doing business as "Sentry" was incorporated in the State of Delaware in 2015 as Functional Software, Inc. and is gonna need some rights from me in order to utilize my contributions in this here PR. So here's the deal: I retain all rights, title and interest in and to my contributions, and by keeping this boilerplate intact I confirm that Sentry can use, modify, copy, and redistribute my contributions, under Sentry's choice of terms.

Process version-1 flamegraphs through the existing native symbolication pipeline behind a feature flag. Preserve captured addresses and original tables, expand inline frames, and checkpoint attachment updates.

Share native frame helpers and cover ingestion, storage backends, validation, reprocessing, and interrupted multi-attachment processing.
@philprime philprime self-assigned this Oct 5, 2026
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Oct 5, 2026

This branch has not been deployed

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

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant