getsentry / getsentry/sentry-java

SDK sets the wrong transaction to ANR events detected during navigation.

オープン
#5,614 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
Android Errors Improvement Platform: Java
主要言語
Kotlin
スター
1.4k
フォーク
478
平均マージ
2日 23時間
マージ済み PR(30日)
67

説明

### Integration

sentry-android

### Build System

Gradle

### AGP Version

NA

### Proguard

Enabled

### Other Error Monitoring Solution

No

### Version

8.32.0

### Steps to Reproduce

This is a hard-to-reproduce issue as it seems to happen only when an ANR is detected while the user is navigating between views in the Android app.

The order of events is:
1. User is in ScreenA
2. User Navigates to Screen B (This creates a new transaction in the SDK scope, replacing the transaction from ScreenA)
3. During the navigation, the app is killed/ANR event is detected
4. The SDK sends the ANR event associated with the transaction from ScreenB

### Expected Result

The ANR event's transaction matches the stack trace and other information in the event.

### Actual Result

The ANR event in Sentry has the stack trace pointing to ScreenA, with all other information pointing to this view. However, the event's transaction (and by extension the event's culprit) points to ScreenB.

This causes user confusion as the culprit showing next to the issue's title now points to a view unrelated to the stack trace where the ANR happened.

[Code where the culprit is set in Sentry. ](https://github.com/getsentry/sentry/blob/master/src/sentry/culprit.py)

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start with the linked src/sentry/culprit.py to understand how the transaction affects the culprit, then trace sentry-android navigation transaction handling and ANR event capture. Reproduce the ScreenA-to-ScreenB navigation sequence if possible; done means the ANR event's transaction and culprit match the screen represented by its stack trace.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
android
領域
mobile, observability
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。