mapbox / mapbox/mapbox-maps-flutter
Crash: SIGSEGV in MapboxRenderThr when exiting 3D view
Nobody has claimed this yet.
- Dominant language
- Dart
- Stars
- 380
- Forks
- 204
- PR merge metrics
- No merged PRs in 30d
Description
I am experiencing this crash and no trick on flutter can prevent it. when you switch to a 3d view style, as long as you switch to other 3ds it is fine, but when try to go back to a 2d style, app always crashes.
we are using version 2.1.0 of mapbox_maps_flutter and flutter 3.35.2. also tested on multiple devices and same crash happens only on android and not IOS. sample log:
`W/Choreographer(18303): Frame time is 0.129558 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
F/libc (18303): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xbf3a9be7c1d in tid 19887 (MapboxRenderThr), pid 18303 (tware.appname)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Redmi/sweet_global/sweet:13/TKQ1.221013.002/V14.0.8.0.TKFMIXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2025-08-28 01:43:54.732256710+0330
Process uptime: 6190s
Cmdline: com.domain.appname
pid: 18303, tid: 19887, name: MapboxRenderThr >>> com.domain.appname <<<
uid: 10669
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x00000bf3a9be7c1d
x0 0000006ddfcf8600 x1 0000006ddfcf8648 x2 0000006ddfcf8638 x3 b400006dfc7ca9a8
x4 0000006ddfcf8758 x5 b400006df3b56db0 x6 3fe6a09e667f3bcc x7 0000000000000000
x8 f9000bf3a9be7c1d x9 0000006ddfcf8720 x10 0000006ddfcf8724 x11 0000000000000317
x12 0000006df96fd5dc x13 3fe6a09e667f3bcd x14 0000000039106cd0 x15 0000000000000006
x16 0000007073b95a98 x17 0000007073b8425c x18 0000006dacd2c000 x19 0000006ddfcfc000
x20 f9000bf3a9be7bfd x21 0000006ddfcf8720 x22 0000000000000008 x23 0000000000000001
x24 b400006dfc7ca900 x25 b400006df7c77700 x26 0000000000000001 x27 0000000000000001
x28 0000006f4dc35000 x29 0000006ddfcf85e0
lr 0000006f4e107108 sp 0000006ddfcf85d0 pc 0000006f4e107144 pst 0000000040000000
backtrace:
#00 pc 000000000065c144 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#01 pc 000000000065c104 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#02 pc 000000000065c0c0 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#03 pc 00000000006e9268 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#04 pc 00000000006e920c /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#05 pc 00000000006e5218 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#06 pc 00000000008f950c /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#07 pc 00000000005f12a0 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#08 pc 00000000005bd934 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#09 pc 00000000005bd85c /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#10 pc 00000000008f83c8 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#11 pc 00000000006afa70 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#12 pc 00000000006c4998 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#13 pc 0000000000506f54 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#14 pc 00000000004fedc0 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#15 pc 00000000009c7538 /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk!libmapbox-maps.so (BuildId: 7111122cca6396016dad6c943510a412d51ba719)
#16 pc 0000000000344500 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+144) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#17 pc 000000000032d194 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#18 pc 000000000067900c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1580) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#19 pc 00000000005c95d0 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp(art::interpreter::SwitchImplContext*)+868) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#20 pc 000000000031c9b8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#21 pc 0000000000260fc8 [anon:dalvik-classes23.dex extracted in memory from /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk] (com.mapbox.maps.NativeMapImpl.render+0)
#22 pc 000000000031c3b0 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+412) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#23 pc 00000000006791f4 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2068) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#24 pc 00000000005c95d0 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp(art::interpreter::SwitchImplContext*)+868) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#25 pc 000000000031c9b8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#26 pc 000000000033c75c [anon:dalvik-classes23.dex extracted in memory from /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk] (com.mapbox.maps.renderer.MapboxRenderer.render+0)
#27 pc 00000000002dc564 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.7923196258099814811)+332) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#28 pc 00000000002dbd98 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+888) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#29 pc 0000000000344638 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#30 pc 000000000282af10 /memfd:jit-cache (deleted) (com.mapbox.maps.renderer.MapboxRenderThread.draw+464)
#31 pc 000000000032d194 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#32 pc 00000000002de270 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+216) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#33 pc 0000000000570114 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1752) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#34 pc 00000000005cc0ec /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp(art::interpreter::SwitchImplContext*)+11904) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#35 pc 000000000031c9b8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#36 pc 000000000033a838 [anon:dalvik-classes23.dex extracted in memory from /data/app/~~DD-NKIoTO6k8e22JoVrX9Q==/com.domain.appname-kNFGkY8R0JDvDIYVK7zR7g==/base.apk] (com.mapbox.maps.renderer.MapboxRenderThread.doFrame+0)
#37 pc 00000000002dc564 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238.llvm.7923196258099814811)+332) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#38 pc 00000000002dbd98 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+888) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#39 pc 0000000000344638 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#40 pc 00000000024c66c8 /memfd:jit-cache (deleted) (android.view.Choreographer$CallbackRecord.run+232)
#41 pc 00000000024c6200 /memfd:jit-cache (deleted) (android.view.Choreographer$CallbackRecord.run+288)
#42 pc 00000000024c5414 /memfd:jit-cache (deleted) (android.view.Choreographer.doCallbacks+916)
#43 pc 00000000024c2c78 /memfd:jit-cache (deleted) (android.view.Choreographer.doFrame+3032)
#44 pc 00000000024c1ed4 /memfd:jit-cache (deleted) (android.view.Choreographer$FrameDisplayEventReceiver.run+180)
#45 pc 0000000002382fac /memfd:jit-cache (deleted) (android.os.Handler.handleCallback+140)
#46 pc 0000000002093448 /memfd:jit-cache (deleted) (android.os.Handler.dispatchMessage+136)
#47 pc 0000000002090948 /memfd:jit-cache (deleted) (android.os.Looper.loopOnce+1224)
#48 pc 000000000208fa74 /memfd:jit-cache (deleted) (android.os.Looper.loop+532)
#49 pc 00000000020b84f8 /memfd:jit-cache (deleted) (android.os.HandlerThread.run+312)
#50 pc 000000000032d194 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+612) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#51 pc 00000000002de270 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+216) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#52 pc 00000000004bfcf4 /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+932) (BuildId: 80d2ab18f9d259d8e546c1e6bae752b1)
#53 pc 00000000000f55c8 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208) (BuildId: 449f781894033dce6346794a1ee593e0)
#54 pc 000000000008efbc /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 449f781894033dce6346794a1ee593e0)
Lost connection to device.
Exited.
`
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
Reproduce the Android-only crash when switching from a 3D style back to a 2D style using mapbox_maps_flutter 2.1.0 and Flutter 3.35.2. Start at the reported NativeMapImpl.render, MapboxRenderer.render, and MapboxRenderThread.draw frames in libmapbox-maps.so, then compare behavior across the tested devices and iOS. Done means the same style transition no longer produces SIGSEGV on Android.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, dart, flutter
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100