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

MapRenderer assertion error #10813

Closed
LukasPaczos opened this issue Jan 2, 2018 · 4 comments
Closed

MapRenderer assertion error #10813

LukasPaczos opened this issue Jan 2, 2018 · 4 comments
Labels
Android Mapbox Maps SDK for Android Core The cross-platform C++ core, aka mbgl

Comments

@LukasPaczos
Copy link
Member

When rapidly rotating Android device and constantly reloading the map, below assertion error was thrown:
Abort message: '/home/lukas/Android/mapbox/mapbox-gl-native/platform/android/src/map_renderer.cpp:102: void mbgl::android::MapRenderer::resetRenderer(): assertion "renderer" failed'

NDK stack trace:

********** Crash dump: **********
Build fingerprint: 'Sony/D6603/D6603:6.0.1/23.5.A.1.291/2769308465:user/release-keys'
pid: 6787, tid: 7781, name: GLThread 188983  >>> com.mapbox.mapboxsdk.testapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Stack frame #00 pc 000420a0  /system/lib/libc.so (tgkill+12)
Stack frame #01 pc 0003fcad  /system/lib/libc.so (pthread_kill+32)
Stack frame #02 pc 0001c463  /system/lib/libc.so (raise+10)
Stack frame #03 pc 00019615  /system/lib/libc.so (__libc_android_abort+34)
Stack frame #04 pc 00017568  /system/lib/libc.so (abort+4)
Stack frame #05 pc 0001b077  /system/lib/libc.so (__libc_fatal+16)
Stack frame #06 pc 0001969d  /system/lib/libc.so (__assert2+20)
Stack frame #07 pc 00107b53  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine mbgl::android::MapRenderer::resetRenderer() at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/src/map_renderer.cpp:102
Stack frame #08 pc 0010a5f3  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine void mbgl::AskMessageImpl<void, mbgl::android::MapRenderer, void (mbgl::android::MapRenderer::*)(), std::__ndk1::tuple<> >::ask<>(std::__ndk1::integer_sequence<unsigned int>) at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:84
Stack frame #09 pc 0010a5a3  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine mbgl::AskMessageImpl<void, mbgl::android::MapRenderer, void (mbgl::android::MapRenderer::*)(), std::__ndk1::tuple<> >::operator()() at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../include/mbgl/actor/message.hpp:78
Stack frame #10 pc 002a4bab  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::receive() at /home/lukas/Android/mapbox/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:58
Stack frame #11 pc 002a4dd7  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine mbgl::Mailbox::maybeReceive(std::__ndk1::weak_ptr<mbgl::Mailbox>) at /home/lukas/Android/mapbox/mapbox-gl-native/src/mbgl/actor/mailbox.cpp:67
Stack frame #12 pc 0010fe21  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine mbgl::android::MapRendererRunnable::run(_JNIEnv&) at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/src/map_renderer_runnable.cpp:23
Stack frame #13 pc 00111573  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine operator() at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:245
Stack frame #14 pc 00111509  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine operator() at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:112
Stack frame #15 pc 001114d1  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine __invoke at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:110
Stack frame #16 pc 001115fd  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine operator()<jni::jobject *> at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:59
Stack frame #17 pc 001115bd  /data/app/com.mapbox.mapboxsdk.testapp-2/lib/arm/libmapbox-gl.so: Routine __invoke<jni::jobject *> at /home/lukas/Android/mapbox/mapbox-gl-native/platform/android/MapboxGLAndroidSDK/.externalNativeBuild/cmake/debug/armeabi-v7a/../../../../../../../mason_packages/headers/jni.hpp/3.0.0/include/jni/native_method.hpp:55
Stack frame #18 pc 00cddb4f  /data/app/com.mapbox.mapboxsdk.testapp-2/oat/arm/base.odex (offset 0x8e9000) (void com.mapbox.mapboxsdk.maps.renderer.MapRendererRunnable.run()+74)
Stack frame #19 pc 7411e2a5  /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x1f66000)
@LukasPaczos LukasPaczos added Android Mapbox Maps SDK for Android Core The cross-platform C++ core, aka mbgl labels Jan 2, 2018
@tobrun
Copy link
Member

tobrun commented Jan 2, 2018

I haven't been able to reproduce this on a Pixel with a test as #10814

@LukasPaczos
Copy link
Member Author

It might be device-dependent as I'm randomly able to reproduce this on Xperia Z3. I'll try to run #10814 on a bunch of AWS farm devices to capture some more results.

@LukasPaczos
Copy link
Member Author

Tested on a bunch of devices on Firebase's test lab and captured one crash for Galaxy S7 on API 24

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/heroltexx/herolte:7.0/NRD90M/G930FXXU1DQC4:user/release-keys'
Revision: '8'
ABI: 'arm64'
pid: 28021, tid: 28794, name: GLThread 2003  >>> com.mapbox.mapboxsdk.testapp <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: '/home/lukas/Android/mapbox/mapbox-gl-native/platform/android/src/map_renderer.cpp:102: void mbgl::android::MapRenderer::resetRenderer(): assertion "renderer" failed'
    x0   0000000000000000  x1   000000000000707a  x2   0000000000000006  x3   0000000000000008
    x4   0000000000000000  x5   0000000000000000  x6   0000000080808080  x7   0000000000000028
    x8   0000000000000083  x9   ffffffffffffffdf  x10  0000000000000000  x11  ffffffffffffffff
    x12  0000000000000020  x13  0000000000000000  x14  0000000000000000  x15  00305055bd63212c
    x16  0000007794e63ee0  x17  0000007794e0ca28  x18  000000776bf00dff  x19  000000776bf024f8
    x20  0000000000000006  x21  000000776bf02450  x22  0000000000000000  x23  0000000000000000
    x24  0000000070c9c918  x25  0000000013191000  x26  0000000012e76630  x27  0000000000000000
    x28  000000776bf01b40  x29  000000776bf012a0  x30  0000007794e09ebc
    sp   000000776bf01280  pc   0000007794e0ca30  pstate 0000000060000000

@tobrun
Copy link
Member

tobrun commented Jan 10, 2018

Was able to reproduce this issue by setting the render surface to View.GONE so the surface creation callback doesn't get invoked. Rotating or closing the activity will show the crash from above. Hardening and handling this case correctly will result in not crashing the map.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Android Mapbox Maps SDK for Android Core The cross-platform C++ core, aka mbgl
Projects
None yet
Development

No branches or pull requests

2 participants