ref(traces): Use new stack trace component in transaction drawer#113989
ref(traces): Use new stack trace component in transaction drawer#113989scttcper wants to merge 2 commits into
Conversation
Swap the legacy `Exception` and `StackTrace` interface components for `IssueStackTrace` in the trace drawer's transaction entries renderer. Matches what `sharedEventContent` already does and what `groupEventDetailsContent` does behind the `issue-details-new-stack-trace` flag. Threads stay on the legacy component since `IssueStackTrace` bails when the event has a threads entry. In practice transaction events almost never carry exception/stacktrace/threads anyway, but the path exists. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
This pull request has gone three weeks without activity. In another week, I will close it. But! If you comment or otherwise update it, I will reset the clock, and if you add the label "A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀 |
| return ( | ||
| <Exception | ||
| <IssueStackTrace | ||
| event={event} | ||
| group={undefined} | ||
| data={entry.data} | ||
| values={entry.data.values ?? []} | ||
| projectSlug={projectSlug} | ||
| groupingCurrentLevel={undefined} | ||
| /> | ||
| ); | ||
|
|
There was a problem hiding this comment.
Bug: The IssueStackTrace component returns null if an event contains a THREADS entry, causing EXCEPTION or STACKTRACE entries to not be rendered when both are present.
Severity: MEDIUM
Suggested Fix
Modify the IssueStackTrace component to not return null when a THREADS entry is present in the event. The component should render the stack trace or exception regardless of other entry types, as they are handled by different components. Alternatively, filter the entries passed to IssueStackTrace to only include the relevant ones.
Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.
Location:
static/app/views/performance/newTraceDetails/traceDrawer/details/transaction/sections/entries.tsx#L29-L36
Potential issue: The `IssueStackTrace` component, used in the new implementation to
render `EXCEPTION` and `STACKTRACE` entries, explicitly returns `null` if the event also
contains an entry of type `THREADS`. This check (`event.entries?.some(entry =>
entry.type === EntryType.THREADS)`) means that if a transaction event has both a
`THREADS` entry and an `EXCEPTION` or `STACKTRACE` entry, the exception/stack trace data
will be silently dropped from the UI. The `THREADS` entry is handled by a different
component, but the exception data disappears, which is a regression from previous
behavior.
Did we get this right? 👍 / 👎 to inform future reviews.
📊 Type Coverage Diff✅ No new type safety issues introduced. Coverage: 93.56% |
Swap the legacy
ExceptionandStackTraceinterface components forIssueStackTracein the trace drawer'swasn't really able to find a live version of these components, but i assume its working