getsentry / getsentry/sentry-java

Support multi-process scope sync

Abierto
#3,849 1 comentario 0 reacciones 0 asignados Ver en GitHub
Android Errors Improvement
Lenguaje dominante
Kotlin
Estrellas
1.4k
Forks
478
Merge medio
2 d 23 h
PR fusionados (30 d)
67

Descripción

### Description

Currently if the Android SDK is used in an multi-process app, the scopes are not synchronized between processes, meaning breadcrumbs/tags/contexts from one process will not show up for errors from another. We should probably introduce a flag to make this opt-in, and to make it work we can do one of the following:

1. Communicate between processes using `IBinder` through a [bound service](https://developer.android.com/develop/background-work/services#CreatingBoundService) and package data as Parcelable. Here's a good example on implementing IPC: https://github.com/perihanmirkelam/IPC-Examples
2. Persist the scope data to disk from both processes and when an error occurs in any of them, use the persisted data in favour of what's currently in-memory. We already do persist the data for ANRs, so it could be as simple as replacing our MainEventProcessor and DefaultAndroidEventProcessor with a new one that reads the data from disk (use [AnrV2EventProcessor](https://github.com/getsentry/sentry-java/blob/main/sentry-android-core/src/main/java/io/sentry/android/core/AnrV2EventProcessor.java) as prior art).

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.