tangram-es
tangram-es copied to clipboard
Crashing in TextLabel::addVerticesToMesh
In Google Play Console I have noticed this crash call stack on Android:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 0 >>> com.vecturagames.android.app.gpxviewer.pro <<<
backtrace:
#00 pc 0000000000238908 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/split_config.arm64_v8a.apk!lib/arm64-v8a/libtangram.so (offset 0x674000) (Tangram::TextLabel::addVerticesToMesh(Tangram::ScreenTransform&, glm::vec<2, float, (glm::qualifier)0> const&)+840)
#00 pc 00000000001f4520 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/split_config.arm64_v8a.apk!lib/arm64-v8a/libtangram.so (offset 0x674000) (Tangram::LabelManager::updateLabelSet(Tangram::ViewState const&, float, Tangram::Scene const&, std::__ndk1::vector<std::__ndk1::shared_ptr<Tangram::Tile>, std::__ndk1::allocator<std::__ndk1::shared_ptr<Tangram::Tile> > > const&, std::__ndk1::vector<std::__ndk1::unique_ptr<Tangram::Marker, std::__ndk1::default_delete<Tangram::Marker> >, std::__ndk1::allocator<std::__ndk1::unique_ptr<Tangram::Marker, std::__ndk1::default_delete<Tangram::Marker> > > > const&, Tangram::TileManager&)+680)
#00 pc 00000000001e3664 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/split_config.arm64_v8a.apk!lib/arm64-v8a/libtangram.so (offset 0x674000) (Tangram::Scene::update(Tangram::View const&, float)+264)
#00 pc 00000000001816f8 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/split_config.arm64_v8a.apk!lib/arm64-v8a/libtangram.so (offset 0x674000) (Tangram::Map::update(float)+168)
#00 pc 000000000017d5d8 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/split_config.arm64_v8a.apk!lib/arm64-v8a/libtangram.so (offset 0x674000) (Java_com_mapzen_tangram_NativeMap_render+32)
#00 pc 00000000000fe4a0 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/oat/arm64/base.odex (art_jni_trampoline+144)
#00 pc 00000000003bd1a0 /data/app/~~niBjWIjm6GeR4rOSlGdsCw==/com.vecturagames.android.app.gpxviewer.pro-bQ8ThEHks2QM5qNTASxlFw==/oat/arm64/base.odex (com.mapzen.tangram.MapRenderer.onDrawFrame+160)
#00 pc 00000000006358f4 /system/framework/arm64/boot-framework.oat (android.opengl.GLSurfaceView$GLThread.guardedRun+3668)
#00 pc 00000000006360e0 /system/framework/arm64/boot-framework.oat (android.opengl.GLSurfaceView$GLThread.run+224)
#00 pc 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548)
#00 pc 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
#00 pc 0000000000554e34 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460)
#00 pc 00000000005a41d0 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308)
#00 pc 00000000000eb968 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64)
#00 pc 000000000008bb88 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)
From crash report it is happening on Android 11 (99,6%) and Android 12 (0,4%). Unfortunately I do not have more information. It is Tangram 0.17.1 with these modifications:
https://github.com/tangrams/tangram-es/pull/2142 https://github.com/tangrams/tangram-es/pull/2111 https://github.com/tangrams/tangram-es/pull/2112 https://github.com/tangrams/tangram-es/pull/2120
@westnordost if I could ask, do you see similar crash for StreetCompelete app in Google Play Console?
I can't say because I do not have uploaded the debug symbols (because they are not supplied), see https://github.com/tangrams/tangram-es/issues/2315. In other words, I do not see the names of the functions that fail in the stacktrace.
How did you manage to get the debug symbols?
Ok, I understand. I did not uploaded debug symbols. But I use Firebase Crashlytics, maybe it is creating automatically debug symbols also for native code and uploading them. I can also see some ANRs in Firebase Crashlytics, but not crashes.
@tallytalwar or @matteblair do you have some time to look into this issue?