Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Play: user-perceived crash rate 3.64% exceeds the 1.09% bad-behavior threshold

Aperta
#267 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
kotlin, rust
Ambito
backend, mobile

Direzione di ricerca

Start with the JNI entry points in libaw_sync and libaw_server, then inspect AccessibilityNodeTraversal.findNode and forEachNode. Review the open #220 panic and the reported recursive traversal failures. Done means native panics no longer abort through JNI, traversal has depth and node limits, and the Play crash metric is rechecked after v0.14.1 reaches full rollout.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Play Console flags the app under Technical quality → Bad behavior: user-perceived crash rate 3.64% against Google's 1.09% threshold, which reduces discoverability. Per-version crash clusters from the Play Developer Reporting API, last 7 days (2026-09-07 → 09-14):

versionCode 40 (v0.14.0b2, the bulk of installs)

reports users cluster status
532 91 BackgroundService.onCreate → ForegroundServiceStartNotAllowedException fixed by #257, shipped in v0.14.1
9 6 AlarmReceiver.onReceive → ForegroundServiceStartNotAllowedException fixed by #257, shipped in v0.14.1
57 + 26 1 + 3 libaw_sync.so Rust panic → SIGABRT open, #220
31 + 6 1 Java_net_activitywatch_android_… JNI entry in libaw_server.so → SIGABRT open (a Rust panic unwinding across the extern "C" JNI boundary aborts the process)
22 3 libaw_server.so → SIGABRT open, same class
16 8 AccessibilityNodeTraversal.findNode → StackOverflowError open (recursive traversal, no depth bound)

versionCode 41 (v0.14.0): no crash clusters; that release's problem was ANRs (#261).

versionCode 33 (v0.12.1, 2023): 324 reports / 61 users on ChromeWatcher.onAccessibilityEvent NPE plus 8 on ChromeWatcher.onInterrupt. The class no longer exists; only the update to 0.14.x fixes those users.

What this means for the metric: the largest cluster by far (541 reports, 97 users) is already fixed in v0.14.1, so the rate should drop substantially as it rolls out. The v0.12.1 stragglers will keep a floor until they update. The remaining actionable work:

  1. Native panics must not abort the process: wrap every JNI entry point in libaw_sync and libaw_server with catch_unwind and return an error object (a Rust panic reaching extern "C" is an abort since Rust 1.81). Fixing the underlying #220 panic is the second half.
  2. findNode / forEachNode: iterative traversal with a depth and node budget instead of unbounded recursion.
  3. Re-check this metric two weeks after v0.14.1 is at 100%.
Lingua principale
Kotlin
Stelle
275
Fork
60
Merge medio
20h 32m
PR unite (30g)
38

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ActivityWatch/aw-android

Tutte le issue di ActivityWatch/aw-android

Issue simili

Altre issue su Kotlin

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.