Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Don't resetRenderer with surface holder destroy callback #14618

Closed
tobrun opened this issue May 9, 2019 · 2 comments · Fixed by #14841
Closed

Don't resetRenderer with surface holder destroy callback #14618

tobrun opened this issue May 9, 2019 · 2 comments · Fixed by #14841
Labels
Android Mapbox Maps SDK for Android

Comments

@tobrun
Copy link
Member

tobrun commented May 9, 2019

We currently have the resetRenderer setup to be called when the surface holder emits a destroy callback. This is to at least support removing/readding the hosting view (eg. RecylerView). Ideally we do not do this and let the reset of the renderer occur as part of onSufaceCreated. This is currently not possible as it results in the following symbolicated stacktrace:

Build fingerprint: 'google/sailfish/sailfish:Q/QPP2.190228.023/5433927:user/release-keys'
#00 0x000000000003e310 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
_JNIEnv::DeleteGlobalRef(_jobject*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/jni.h:552:18
#01 0x000000000003e948 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
jni::DefaultRefDeleter<&(_JNIEnv::DeleteGlobalRef(_jobject*))>::operator()(jni::jobject*) const
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/ownership.hpp:40:21
#02 0x000000000016bfc4 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
jni::Unique<jni::Object<mbgl::android::LocalGlyphRasterizer>, jni::DefaultRefDeleter<&(_JNIEnv::DeleteGlobalRef(_jobject*))> >::reset(jni::jobject*)
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/unique.hpp:85:21
#03 0x000000000016a5cc /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
jni::Unique<jni::Object<mbgl::android::LocalGlyphRasterizer>, jni::DefaultRefDeleter<&(_JNIEnv::DeleteGlobalRef(_jobject*))> >::~Unique()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/unique.hpp:69:17
#04 0x000000000016cc44 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
mbgl::android::LocalGlyphRasterizer::~LocalGlyphRasterizer()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../src/text/local_glyph_rasterizer_jni.hpp:18:7
#05 0x000000000016cc14 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
mbgl::LocalGlyphRasterizer::Impl::~Impl()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../src/text/local_glyph_rasterizer.cpp:65:29
#06 0x000000000016ae18 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer::Impl>::operator()(mbgl::LocalGlyphRasterizer::Impl*) const
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2325:5
std::__ndk1::unique_ptr<mbgl::LocalGlyphRasterizer::Impl, std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer::Impl> >::reset(mbgl::LocalGlyphRasterizer::Impl*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2638:0
std::__ndk1::unique_ptr<mbgl::LocalGlyphRasterizer::Impl, std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer::Impl> >::~unique_ptr()
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2592:0
mbgl::LocalGlyphRasterizer::~LocalGlyphRasterizer()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../src/text/local_glyph_rasterizer.cpp:97:0
#07 0x000000000016ae50 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
mbgl::LocalGlyphRasterizer::~LocalGlyphRasterizer()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../src/text/local_glyph_rasterizer.cpp:97:1
#08 0x000000000058ca1c /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer>::operator()(mbgl::LocalGlyphRasterizer*) const
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2325:5
std::__ndk1::unique_ptr<mbgl::LocalGlyphRasterizer, std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer> >::reset(mbgl::LocalGlyphRasterizer*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2638:0
std::__ndk1::unique_ptr<mbgl::LocalGlyphRasterizer, std::__ndk1::default_delete<mbgl::LocalGlyphRasterizer> >::~unique_ptr()
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2592:0
mbgl::GlyphManager::~GlyphManager()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../src/mbgl/text/glyph_manager.cpp:20:0
#09 0x0000000000344ad4 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
std::__ndk1::default_delete<mbgl::GlyphManager>::operator()(mbgl::GlyphManager*) const
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2325:5
std::__ndk1::unique_ptr<mbgl::GlyphManager, std::__ndk1::default_delete<mbgl::GlyphManager> >::reset(mbgl::GlyphManager*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2638:0
std::__ndk1::unique_ptr<mbgl::GlyphManager, std::__ndk1::default_delete<mbgl::GlyphManager> >::~unique_ptr()
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2592:0
mbgl::Renderer::Impl::~Impl()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../src/mbgl/renderer/renderer_impl.cpp:75:0
#10 0x0000000000344be0 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
mbgl::Renderer::Impl::~Impl()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../src/mbgl/renderer/renderer_impl.cpp:62:25
#11 0x000000000033f544 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
std::__ndk1::default_delete<mbgl::Renderer::Impl>::operator()(mbgl::Renderer::Impl*) const
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2325:5
std::__ndk1::unique_ptr<mbgl::Renderer::Impl, std::__ndk1::default_delete<mbgl::Renderer::Impl> >::reset(mbgl::Renderer::Impl*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2638:0
mbgl::Renderer::~Renderer()
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../src/mbgl/renderer/renderer.cpp:24:0
#12 0x0000000000049afc /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
std::__ndk1::default_delete<mbgl::Renderer>::operator()(mbgl::Renderer*) const
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2325:5
std::__ndk1::unique_ptr<mbgl::Renderer, std::__ndk1::default_delete<mbgl::Renderer> >::reset(mbgl::Renderer*)
/home/nurbot/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory:2638:0
mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&)
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../src/map_renderer.cpp:173:0
#13 0x000000000005ad98 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)::operator()(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/native_method.hpp:274:28
#14 0x000000000005acb0 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
auto jni::NativeMethodMaker<void (auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)::*)(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const>::operator()<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>(char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&)::'lambda'(_JNIEnv*, jni::jobject*)::operator()(_JNIEnv*, jni::jobject*) const
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/native_method.hpp:127:17
#15 0x000000000005ac30 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
auto jni::NativeMethodMaker<void (auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)::*)(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const>::operator()<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>(char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&)::'lambda'(_JNIEnv*, jni::jobject*)::__invoke(_JNIEnv*, jni::jobject*)
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/native_method.hpp:125:28
#16 0x000000000005ae0c /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
auto auto jni::MakeNativeMethod<auto jni::NativeMethodMaker<void (auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)::*)(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const>::operator()<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>(char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&)::'lambda'(_JNIEnv*, jni::jobject*)>(char const*, char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&, std::__ndk1::enable_if<std::is_class<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>::value, void>::type*)::'lambda'(_JNIEnv*, auto...)::operator()<jni::jobject*>(_JNIEnv*, auto...) const
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/native_method.hpp:57:24
#17 0x000000000005adc8 /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/lib/arm64/libmapbox-gl.so
auto auto jni::MakeNativeMethod<auto jni::NativeMethodMaker<void (auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)::*)(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const>::operator()<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>(char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&)::'lambda'(_JNIEnv*, jni::jobject*)>(char const*, char const*, auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&) const&, std::__ndk1::enable_if<std::is_class<auto jni::NativePeerMemberFunctionMethod<void (mbgl::android::MapRenderer::*)(_JNIEnv&), &(mbgl::android::MapRenderer::onSurfaceCreated(_JNIEnv&))>::operator()<mbgl::android::MapRenderer, mbgl::android::MapRenderer, void>(jni::Field<mbgl::android::MapRenderer, long> const&)::'lambda'(_JNIEnv&, jni::Object<mbgl::android::MapRenderer>&)>::value, void>::type*)::'lambda'(_JNIEnv*, auto...)::__invoke<jni::jobject*>(_JNIEnv*, auto...)
/home/nurbot/ws/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/arm64-v8a/../../../../../../../vendor/jni.hpp/include/jni/native_method.hpp:53:24
#18 0x000000000013c330 /apex/com.android.runtime/lib64/libart.so (art_quick_generic_jni_trampoline+144)
#19 0x0000000000133334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
#20 0x0000000000142358 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+208)
#21 0x00000000002faac4 /apex/com.android.runtime/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+384)
#22 0x00000000002f5130 /apex/com.android.runtime/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+928)
#23 0x00000000005ca72c /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+400)
#24 0x000000000012d914 /apex/com.android.runtime/lib64/libart.so (Mterp_op_invoke_direct+20)
#25 0x00000000002fbd70 [anon:dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/base.apk] (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onSurfaceCreated+8)
#26 0x00000000005c9140 /apex/com.android.runtime/lib64/libart.so (MterpInvokeSuper+2372)
#27 0x000000000012d894 /apex/com.android.runtime/lib64/libart.so (Mterp_op_invoke_super+20)
#28 0x00000000002fd3dc [anon:dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/base.apk] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onSurfaceCreated+8)
#29 0x00000000005c9140 /apex/com.android.runtime/lib64/libart.so (MterpInvokeSuper+2372)
#30 0x000000000012d894 /apex/com.android.runtime/lib64/libart.so (Mterp_op_invoke_super+20)
#31 0x00000000002ebdbc [anon:dalvik-classes.dex extracted in memory from /data/app/com.mapbox.mapboxsdk.testapp-zf0X772Jz2xDba_Y66X8Ng==/base.apk] (com.mapbox.mapboxsdk.maps.MapView$5.onSurfaceCreated+24)
#32 0x00000000005c9e78 /apex/com.android.runtime/lib64/libart.so (MterpInvokeInterface+1764)
#33 0x000000000012da14 /apex/com.android.runtime/lib64/libart.so (Mterp_op_invoke_interface+20)
#34 0x00000000002cf246 /system/framework/framework.jar (android.opengl.GLSurfaceView$GLThread.guardedRun+890)
#35 0x00000000005caa44 /apex/com.android.runtime/lib64/libart.so (MterpInvokeDirect+1192)
#36 0x000000000012d914 /apex/com.android.runtime/lib64/libart.so (Mterp_op_invoke_direct+20)
#37 0x00000000002cf904 /system/framework/framework.jar (android.opengl.GLSurfaceView$GLThread.run+48)
#38 0x00000000002ccad4 /apex/com.android.runtime/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.6312508945476093651+420)
#39 0x00000000005b8830 /apex/com.android.runtime/lib64/libart.so (artQuickToInterpreterBridge+968)
#40 0x000000000013c448 /apex/com.android.runtime/lib64/libart.so (art_quick_to_interpreter_bridge+88)
#41 0x0000000000133334 /apex/com.android.runtime/lib64/libart.so (art_quick_invoke_stub+548)
#42 0x0000000000142358 /apex/com.android.runtime/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+208)
#43 0x00000000004df8fc /apex/com.android.runtime/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
#44 0x00000000004e0a2c /apex/com.android.runtime/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+416)
#45 0x000000000051f180 /apex/com.android.runtime/lib64/libart.so (art::Thread::CreateCallback(void*)+1420)
#46 0x00000000000e2cb4 /bionic/lib64/libc.so (__pthread_start(void*)+36)
#47 0x000000000008380c /bionic/lib64/libc.so (__start_thread+64)
Crash dump is completed
@tobrun tobrun added the Android Mapbox Maps SDK for Android label May 9, 2019
@tobrun
Copy link
Member Author

tobrun commented May 9, 2019

This crash can be triggered with removing nativeReset(); in GLSurfaceViewMapRenderer in the surfaceDestroyed callback.

@tobrun
Copy link
Member Author

tobrun commented May 27, 2019

Capturing from @tmpsantos that we need to detach the localglyphrasterizer instead of fully resetting the map renderer. Initial test show that this approach is viable but atm is missing logic for reattaching it for when the apps returns from background.

Approach taken currently requires changes in core as local glyph rasterzer is encapsulated by the glyph manager. @tmpsantos do you see a way to call this attach/detach completely from the binding without impacting core?

image

cc @ivovandongen @LukasPaczos

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Android Mapbox Maps SDK for Android
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants