tangram-es icon indicating copy to clipboard operation
tangram-es copied to clipboard

Crashing in TextLabel::addVerticesToMesh

Open rwrx opened this issue 1 year ago • 3 comments

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?

rwrx avatar Jul 05 '22 10:07 rwrx

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?

westnordost avatar Jul 05 '22 10:07 westnordost

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.

rwrx avatar Jul 05 '22 10:07 rwrx

@tallytalwar or @matteblair do you have some time to look into this issue?

rwrx avatar Sep 21 '22 19:09 rwrx