mapbox / mapbox/mapbox-maps-android

Segmentation violation (invalid memory reference)

Open
#2,637 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

auto-triaged bug :beetle:
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.