Closed dh-hasif closed 2 years ago
We are seeing so many ANR in production for Mapbox in Firebase Crashlytics. Also, customers have reported the app freezing
When using the app with Mapview, the app is freezing and ANR is thrown
App should not freeze and should work normally
sun.misc.Unsafe.park (Unsafe.java) java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) com.mapbox.maps.renderer.MapboxRenderThread.onSurfaceDestroyed (MapboxRenderThread.kt:422) com.mapbox.maps.renderer.MapboxTextureViewRenderer.onSurfaceTextureDestroyed (MapboxTextureViewRenderer.kt:47) android.view.TextureView.releaseSurfaceTexture (TextureView.java:261) android.view.TextureView.onDetachedFromWindowInternal (TextureView.java:232) android.view.View.dispatchDetachedFromWindow (View.java:20693) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewRootImpl.dispatchDetachedFromWindow (ViewRootImpl.java:4783) android.view.ViewRootImpl.doDie (ViewRootImpl.java:7881) android.view.ViewRootImpl.die (ViewRootImpl.java:7858) android.view.WindowManagerGlobal.removeViewLocked (WindowManagerGlobal.java:537) android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:478) android.view.WindowManagerImpl.removeViewImmediate (WindowManagerImpl.java:143) android.app.Dialog.dismissDialog (Dialog.java:389) android.app.Dialog.dismiss (Dialog.java:371) androidx.appcompat.app.AppCompatDialog.dismiss (AppCompatDialog.java:140) androidx.fragment.app.DialogFragment.onDestroyView (DialogFragment.java:788) com.roadrunner.delivery.destination.presentation.DestinationDetailDialogFragment.onDestroyView (DestinationDetailDialogFragment.kt:168) androidx.fragment.app.Fragment.performDestroyView (Fragment.java:3341) androidx.fragment.app.FragmentStateManager.destroyFragmentView (FragmentStateManager.java:745) androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:327) androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:1890) androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:1808) androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:1751) androidx.fragment.app.FragmentManager$5.run (FragmentManager.java:538) android.os.Handler.handleCallback (Handler.java:938) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:236) android.app.ActivityThread.main (ActivityThread.java:7861) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:600) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)
Most likely fixed in v10.8.0 by https://github.com/mapbox/mapbox-maps-android/pull/1567. Please update and re-open this if the issue will persist.
Environment
Observed behavior and steps to reproduce
We are seeing so many ANR in production for Mapbox in Firebase Crashlytics. Also, customers have reported the app freezing
When using the app with Mapview, the app is freezing and ANR is thrown
Expected behavior
App should not freeze and should work normally
Notes / preliminary analysis
Additional links and references
sun.misc.Unsafe.park (Unsafe.java) java.util.concurrent.locks.LockSupport.park (LockSupport.java:190) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2067) com.mapbox.maps.renderer.MapboxRenderThread.onSurfaceDestroyed (MapboxRenderThread.kt:422) com.mapbox.maps.renderer.MapboxTextureViewRenderer.onSurfaceTextureDestroyed (MapboxTextureViewRenderer.kt:47) android.view.TextureView.releaseSurfaceTexture (TextureView.java:261) android.view.TextureView.onDetachedFromWindowInternal (TextureView.java:232) android.view.View.dispatchDetachedFromWindow (View.java:20693) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewGroup.dispatchDetachedFromWindow (ViewGroup.java:3956) android.view.ViewRootImpl.dispatchDetachedFromWindow (ViewRootImpl.java:4783) android.view.ViewRootImpl.doDie (ViewRootImpl.java:7881) android.view.ViewRootImpl.die (ViewRootImpl.java:7858) android.view.WindowManagerGlobal.removeViewLocked (WindowManagerGlobal.java:537) android.view.WindowManagerGlobal.removeView (WindowManagerGlobal.java:478) android.view.WindowManagerImpl.removeViewImmediate (WindowManagerImpl.java:143) android.app.Dialog.dismissDialog (Dialog.java:389) android.app.Dialog.dismiss (Dialog.java:371) androidx.appcompat.app.AppCompatDialog.dismiss (AppCompatDialog.java:140) androidx.fragment.app.DialogFragment.onDestroyView (DialogFragment.java:788) com.roadrunner.delivery.destination.presentation.DestinationDetailDialogFragment.onDestroyView (DestinationDetailDialogFragment.kt:168) androidx.fragment.app.Fragment.performDestroyView (Fragment.java:3341) androidx.fragment.app.FragmentStateManager.destroyFragmentView (FragmentStateManager.java:745) androidx.fragment.app.FragmentStateManager.moveToExpectedState (FragmentStateManager.java:327) androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:1890) androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java:1808) androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:1751) androidx.fragment.app.FragmentManager$5.run (FragmentManager.java:538) android.os.Handler.handleCallback (Handler.java:938) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:236) android.app.ActivityThread.main (ActivityThread.java:7861) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:600) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)