uber / RxDogTag

Automatic tagging of RxJava 2+ originating subscribe points for onError() investigation.
https://uber.github.io/RxDogTag
Apache License 2.0
648 stars 19 forks source link

ANR in 0.2.0 #32

Closed ColtonIdle closed 5 years ago

ColtonIdle commented 5 years ago

Library version: 0.2.0

Repro steps or stacktrace:

Getting an ANR, and while I can't really pinpoint that RxDogTag is the issue, it does show up in the stacktrace in my bugsnag logs. Feel free to close if it's not an issue with RxDogTag.

ANR: Application did not respond for at least 5000 ms
        at android.os.BinderProxy.transactNative(Binder.java:-2)
        at android.os.BinderProxy.transact(Binder.java:1140)
        at android.app.IActivityManager$Stub$Proxy.handleApplicationCrash(IActivityManager.java:3560)
        at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:143)
        at com.bugsnag.android.ExceptionHandler.uncaughtException(ExceptionHandler.java:91)
        at com.mixpanel.android.mpmetrics.ExceptionHandler.uncaughtException(ExceptionHandler.java:53)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
        at io.reactivex.plugins.RxJavaPlugins.uncaught(RxJavaPlugins.java:429)
        at io.reactivex.plugins.RxJavaPlugins.onError(RxJavaPlugins.java:383)
        at com.uber.rxdogtag.RxDogTag.reportError(RxDogTag.java:309)
        at com.uber.rxdogtag.DogTagObserver.onError(DogTagObserver.java:61)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.checkTerminated(ObservableObserveOn.java:281)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:172)
        at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
        at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:6981)
        at java.lang.reflect.Method.invoke(Method.java:-2)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1445)
ShaishavGandhi commented 5 years ago

Interesting. Has this only happened once or are you getting multiple reports with the same trace?

ColtonIdle commented 5 years ago

My app doesn't have a huge install base. About ~5k installs, but we saw this about 15 times.

ZacSweers commented 5 years ago

I think it's more likely to be an issue with at com.mixpanel.android.mpmetrics.ExceptionHandler.uncaughtException(ExceptionHandler.java:53), RxDogTag is just transitively deferring to RxJava's error handling, which in turn is deferring to mixpanel. Going to close this for now unless there's something more concrete we can look into