Describe the bug
I am seeing ANRs that are fully on conto of Bugsnag leaveBreadcrumb. It seems that the NDK part of that logic is causing hangs.
Environment
- Android version: 13
- BugSnag version: 6.27.0
- Emulator or physical device: real devices
Error messages
ANR: Application did not respond to UI input
libc.so +0x8921c syscall
libc.so +0x8dafc __futex_wait_ex(void volatile*, bool, int, bool, timespec const*)
libc.so +0xfcf34 NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*)
libc.so +0xfcc68 pthread_mutex_lock
libbugsnag-ndk.so +0x542dc <unknown>
boot.oat +0x1072764 art_jni_trampoline
com.bugsnag.android.ndk.NativeBridge.addBreadcrumb (SourceFile:-2)
com.bugsnag.android.ndk.NativeBridge.onStateChange (NativeBridge:122)
com.bugsnag.android.BaseObservable.updateState$bugsnag_android_core_release (BaseObservable:37)
com.bugsnag.android.BreadcrumbState.add (BreadcrumbState:41)
com.bugsnag.android.Client.leaveBreadcrumb (Client:1151)
com.bugsnag.android.SystemBroadcastReceiver.onReceive (SystemBroadcastReceiver:56)
SamsungStoreRatingManager$showRatingDialogIfApplicable$authorityReceiver$1.onReceive (SamsungStoreRatingManager:99)
android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$android-app-LoadedApk$ReceiverDispatcher$Args (LoadedApk.java:1838)
android.app.LoadedApk$ReceiverDispatcher$Args$$ExternalSyntheticLambda0.run (Unknown:2)
android.os.Handler.handleCallback (Handler.java:942)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loopOnce (Looper.java:211)
android.os.Looper.loop (Looper.java:300)
android.app.ActivityThread.main (ActivityThread.java:8232)
java.lang.reflect.Method.invoke (Method.java:-2)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)
ANR: Application did not respond to UI input
libc.so +0x8921c syscall
libc.so +0x8dafc __futex_wait_ex(void volatile*, bool, int, bool, timespec const*)
libc.so +0xfcf34 NonPI::MutexLockWithTimeout(pthread_mutex_internal_t*, bool, timespec const*)
libc.so +0xfcc68 pthread_mutex_lock
libbugsnag-ndk.so +0x542dc <unknown>
boot.oat +0x105c934 art_jni_trampoline
com.bugsnag.android.ndk.NativeBridge.addBreadcrumb (SourceFile:-2)
com.bugsnag.android.ndk.NativeBridge.onStateChange (NativeBridge:122)
com.bugsnag.android.BaseObservable.updateState$bugsnag_android_core_release (BaseObservable:37)
com.bugsnag.android.BreadcrumbState.add (BreadcrumbState:41)
com.bugsnag.android.Client.leaveAutoBreadcrumb (Client:1169)
com.bugsnag.android.Client$6.invoke (Client:430)
com.bugsnag.android.Client$6.invoke (Client:425)
com.bugsnag.android.ClientComponentCallbacks.onTrimMemory (ClientComponentCallbacks:23)
android.content.ComponentCallbacksController.lambda$dispatchTrimMemory$1 (ComponentCallbacksController.java:109)
android.content.ComponentCallbacksController$$ExternalSyntheticLambda1.accept (D8$$SyntheticClass:4)
android.content.ComponentCallbacksController.forAllComponentCallbacks (ComponentCallbacksController.java:124)
android.content.ComponentCallbacksController.dispatchTrimMemory (ComponentCallbacksController.java:107)
android.app.Application.onTrimMemory (Application.java:289)
android.app.ActivityThread.handleTrimMemory (ActivityThread.java:6641)
android.app.ActivityThread.-$$Nest$mhandleTrimMemory (ActivityThread.java)
android.app.ActivityThread$ApplicationThread.lambda$scheduleTrimMemory$0 (ActivityThread.java:1811)
android.app.ActivityThread$ApplicationThread$$ExternalSyntheticLambda2.accept (D8$$SyntheticClass:8)
com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke (PooledLambdaImpl.java:281)
com.android.internal.util.function.pooled.PooledLambdaImpl.invoke (PooledLambdaImpl.java:204)
com.android.internal.util.function.pooled.OmniFunction.run (OmniFunction.java:97)
android.os.Handler.handleCallback (Handler.java:942)
android.os.Handler.dispatchMessage (Handler.java:99)
android.os.Looper.loopOnce (Looper.java:211)
android.os.Looper.loop (Looper.java:300)
android.app.ActivityThread.main (ActivityThread.java:8232)
java.lang.reflect.Method.invoke (Method.java:-2)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:580)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)
Describe the bug
I am seeing ANRs that are fully on conto of Bugsnag leaveBreadcrumb. It seems that the NDK part of that logic is causing hangs.
Environment
Error messages