mapbox / mapbox-maps-android

Interactive, thoroughly customizable maps in native Android powered by vector tiles and OpenGL.
https://www.mapbox.com/mobile-maps-sdk
Other
466 stars 131 forks source link

ANR issue in MapboxRenderThread #1671

Closed dh-hasif closed 2 years ago

dh-hasif commented 2 years ago

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)

kiryldz commented 2 years ago

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.