mapbox / mapbox/mapbox-maps-android
Segmentation violation (invalid memory reference)
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 578
- Forks
- 161
- PR merge metrics
- No merged PRs in 30d
Description
Environment
Android 12, 13, 14 and 15
Multiple devices including samsung, oppo, xiaomi and redmi
Mapbox 11.12.1
Observed behavior and steps to reproduce
I have seen continuous crashes being logged for multiple users but I haven’t been able to reproduce it locally. The only fix for the users has been to reinstall the app after which the crashes stop.
SIGSEGV: Segmentation violation (invalid memory reference)
0 libGLESv2_adreno.so +0x198e7c !!!0000!6e21e471079f0182460f33d6af69bc!c5f0e23!
1 libmapbox-maps.so +0x89d0f8 0x7dcec1a0fc
2 libmapbox-maps.so +0x5b89d0 0x7dce9359d4
3 libmapbox-maps.so +0x645bc8 0x7dce9c2bcc
4 libmapbox-maps.so +0x65b6b8 0x7dce9d86bc
5 libmapbox-maps.so +0x6497d4 0x7dce9c67d8
6 libmapbox-maps.so +0x648120 0x7dce9c5124
7 libmapbox-maps.so +0x4aa728 0x7dce82772c
8 libmapbox-maps.so +0x4a25ec 0x7dce81f5f0
9 libmapbox-maps.so +0x935c40 0x7dcecb2c44
10 boot.oat +0x3543dc art_jni_trampoline
Expected behavior
The app should not crash.
Notes / preliminary analysis
I have seen these crashes after I updated the Mapbox sdk to 11.11 from 11.10
For one user's this is a one time crash but for others the map becomes usable and it crashes everytime. Some further trace that I have from another source is:
pid: 0, tid: 13731 >>> com.waymarkedtrails.hiiker <<<
backtrace:
#00 pc 0x0000000000198e7c /vendor/lib64/egl/libGLESv2_adreno.so (!!!0000!6e21e471079f0182460f33d6af69bc!c5f0e23!+716)
#01 pc 0x000000000089d0fc /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#02 pc 0x00000000005b89d4 /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#03 pc 0x0000000000645bcc /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#04 pc 0x000000000065b6bc /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#05 pc 0x00000000006497d8 /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#06 pc 0x0000000000648124 /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#07 pc 0x00000000004aa72c /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#08 pc 0x00000000004a25f0 /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#09 pc 0x0000000000935c44 /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/split_config.arm64_v8a.apk!libmapbox-maps.so (BuildId: e187fc5229ec8674808855af4b2dd66a1d268e06)
#10 pc 0x00000000003543e0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
#11 pc 0x0000000000782420 /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
#12 pc 0x00000000003b24bc /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/base.apk (com.mapbox.maps.NativeMapImpl.render+4)
#13 pc 0x00000000007823c4 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#14 pc 0x000000000048443c /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/base.apk (com.mapbox.maps.renderer.MapboxRenderer.render+8)
#15 pc 0x00000000007823c4 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#16 pc 0x0000000000482d5a /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/base.apk (com.mapbox.maps.renderer.MapboxRenderThread.draw+198)
#17 pc 0x00000000007823c4 /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
#18 pc 0x0000000000482baa /data/app/~~0kvQcBe3UsjT2guSaSjdjA==/com.waymarkedtrails.hiiker-1UdjZ-ZZREu-cNBb_v0aKg==/base.apk (com.mapbox.maps.renderer.MapboxRenderThread.doFrame+266)
#19 pc 0x0000000000b529f0 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer.doCallbacks+1360)
#20 pc 0x0000000000b53a40 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer.doFrame+3280)
#21 pc 0x0000000000bf3ba8 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.view.Choreographer$FrameDisplayEventReceiver.run+88)
#22 pc 0x0000000000a7966c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+76)
#23 pc 0x0000000000a7d19c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1244)
#24 pc 0x0000000000a7cc0c /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1196)
#25 pc 0x0000000000a7ba88 /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.HandlerThread.run+1064)
#26 pc 0x0000000000368774 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612)
#27 pc 0x0000000000353f24 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+132)
#28 pc 0x0000000000947748 /apex/com.android.art/lib64/libart.so (art::detail::ShortyTraits<(char)86>::Type art::ArtMethod::InvokeInstance<(char)86>(art::Thread*, art::ObjPtrart::mirror::Object, art::detail::ShortyTraits<>::Type...)+60)
#29 pc 0x0000000000636e80 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1344)
#30 pc 0x00000000000e5a08 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
#31 pc 0x000000000007f27c /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68)
Additional links and references
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the supplied native crash trace, especially NativeMapImpl.render, MapboxRenderer.render, and MapboxRenderThread, and compare behavior between Mapbox SDK 11.10 and 11.11. Investigate the libGLESv2_adreno.so and libmapbox-maps.so frames on the listed Android versions and devices. Done means identifying a reproducible cause and preventing the segmentation violation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- computer-graphics, mobile
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100