[Flutter 3] Null pointer dereference in libmapbox-gl.so

I am looking for some help debugging a new critical native crash that affects Mapbox Flutter plugin.
The issue doesn't reproduce on Flutter 2.13 and is only present in Flutter 3.x. No changes to the way plugin was integrated were made and no changes to the native code that plugin relies on were made. The only change was upgrade to Flutter 3.
I have checked the changes done in Flutter engine between 2.13 and 3.0 releases and it's only dart revision: https://github.com/flutter/engine/compare/3096903c8923608d3c1ccf8058a29c31a2bfbc53..d1b9a6938ad77326ac3a94d92bbc77933ed829ed.
Any insight on where to dig?
Steps to Reproduce

Execute flutter run on the code sample
Click on any button that would open the map (try again if it didn't crash)
Observer native crash

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_gphone64_arm64/emulator64_arm64:12/S2B2.211203.006/8015633:userdebug/dev-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2022-07-08 13:33:24.673577251+0200
Process uptime: 0s
Cmdline: com.mapbox.mapboxglexample
pid: 4347, tid: 4489, name: GLThread 98  >>> com.mapbox.mapboxglexample <<<
uid: 10152
tagged_addr_ctrl:<PHONE_NUMBER>000001
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
    x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>000000  x2<PHONE_NUMBER>000001  x3<PHONE_NUMBER>0c68fc
    x4  00000072b018e338  x5<PHONE_NUMBER>00004a  x6  4900ff55284901ff  x7  7f7f7f7f7f7f7f7f
    x8<PHONE_NUMBER>000000  x9  00000072b018f040  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000001
    x12<PHONE_NUMBER>0000ff  x13<PHONE_NUMBER>000000  x14 7ffbffff00000000  x15<PHONE_NUMBER>000000
    x16 00000072c0d5ef70  x17 00000075f77d72cc  x18<PHONE_NUMBER>02c000  x19 00000072b018e448
    x20<PHONE_NUMBER>000000  x21<PHONE_NUMBER>000001  x22 00000072dde6f7a4  x23<PHONE_NUMBER>001070
    x24<PHONE_NUMBER>200880  x25 00000072b018e5b0  x26 00000072b018e5e0  x27 00000072b018e5b0
    x28 00000072b018e4b0  x29 00000072b018e3e0
    lr  00000072c094981c  sp  00000072b018e3d0  pc  00000072c0949948  pst<PHONE_NUMBER>001000
backtrace:
      #00 pc<PHONE_NUMBER>11d948  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #01 pc<PHONE_NUMBER>11d818  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #02 pc<PHONE_NUMBER>0adc2c  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #03 pc<PHONE_NUMBER>2d7644  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #04 pc<PHONE_NUMBER>20a0a0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #05 pc<PHONE_NUMBER>4297a4  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame+12)
      #06 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #07 pc<PHONE_NUMBER>42b484  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame+0)
      #08 pc<PHONE_NUMBER>20af10  /apex/com.android.art/lib64/libart.so (nterp_helper+7712) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #09 pc<PHONE_NUMBER>42befa  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.guardedRun+994)
      #10 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #11 pc<PHONE_NUMBER>42c490  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.run+48)
      #12 pc<PHONE_NUMBER>2cdd64  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #13 pc<PHONE_NUMBER>317fb0  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #14 pc<PHONE_NUMBER>3cc480  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #15 pc<PHONE_NUMBER>45efd8  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #16 pc<PHONE_NUMBER>0b1810  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: b2e84269f59e7b1658e3a470fd302458)
      #17 pc<PHONE_NUMBER>0512f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: b2e84269f59e7b1658e3a470fd302458)

Expected results:
App shouldn't crash
Actual results:
App crashes with native crash that doesn't happen in Flutter 2.13

Code sample
https://github.com/flutter-mapbox-gl/maps/tree/master/example
Follow readme instructions on how to run mapbox example app

Logs

[✓] Flutter (Channel master, 3.1.0-0.0.pre.1542, on macOS 12.4 21F79 darwin-arm, locale en-GB)
    • Flutter version 3.1.0-0.0.pre.1542 on channel master at /Volumes/MyData/Common/Flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision b748d1fb1a (18 hours ago), 2022-07-07 10:46:07 -0700
    • Engine revision 61a3788bb9
    • Dart version 2.18.0 (build 2.18.0-261.0.dev)
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
    • Android SDK at /Volumes/MyData/Common/Android/sdk
    • Platform android-32, build-tools 32.1.0-rc1
    • Java binary at: /Volumes/MyData/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13F100
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Volumes/MyData/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Ultimate Edition (version 2021.3.2)
    • IntelliJ at /Volumes/MyData/Applications/IntelliJ IDEA.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.68.1)
    • VS Code at /Volumes/MyData/Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.42.0

[✓] Connected device (3 available)
    • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64  • Android 12 (API 32) (emulator)
    • macOS (desktop)             • macos         • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Hi @AAverin
I can not reproduce the issue on the latest stable and master channels. The sample code runs normally without crashing.
Tested on devices:

Pixel 3a Android 12
Samsung Galaxy Tab A7 Lite Android 11 OneUI 3.1, SM-T225

Demo
https://user-images.githubusercontent.com/104349824/178183646-85bce262-aa34-4c18-966e-8e2ba048a784.mp4
https://user-images.githubusercontent.com/104349824/178184508-3e85fba9-c4a6-48cd-bc95-0b2d04aed9bd.mov

flutter doctor -v
[✓] Flutter (Channel stable, 3.0.4, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.0.4 at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 85684f9300 (3 days ago), 2022-06-30 13:22:47 -0700
    • Engine revision 6ba2af10bb
    • Dart version 2.17.5
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio
    • Android Studio at /Applications/Android Studio Preview.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    ✗ Unable to find bundled Java version.
    • Try updating or re-installing Android Studio.

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.68.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.42.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 103.0.5060.53

[✓] HTTP Host Availability
    • All required HTTP hosts are available

! Doctor found issues in 1 category.

[✓] Flutter (Channel master, 3.1.0-0.0.pre.1591, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.1.0-0.0.pre.1591 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 8d4cad8149 (87 minutes ago), 2022-07-10 21:20:06 -0400
    • Engine revision 15402b25b0
    • Dart version 2.18.0 (build 2.18.0-271.0.dev)
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13E113
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.68.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)    • chrome • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Does this issue happen on Flutter stable 3.0.4 and latest Flutter master 3.1.0-0.0.pre.1591?
And could you please retry on a physical device and see if the issue's still reproducible?

Also couldn't reproduce on  3.1.0-0.0.pre.1650. Will keep testing once I have better network connection and can compare with previous master states.
Latest master is required due to https://github.com/flutter/flutter/issues/103630 being fixed there.

I am still getting the crash on the latest version of Flutter master, usually on hot reload. Will see if find a way to reproduce on a sample somehow.

The issue looks to be related to the creation of a new instance of the plugin.
Were there any changes done there?
I can definitely see an improvement on the latest master, before that crashes were happening much more often. Will still need to test it in more detail once I have better network connection.

Were there any changes done there?

There are many changes that are updated every day. So it's pretty hard to find the PR that fixed this. But if it has improved on master, please try again and again to make sure the issue is fixed. Anyway, I'd love to hear your feedback.

@huycozy
On 3.1.0-0.0.pre.1650 in the mapbox example app, going in and out "User Interface" test screen results in that native crash still. Doesn't reproduce that often anymore, but still does.
Looks to be related to creation of a new plugin instance.

@flutter-symbolizer-bot https://github.com/flutter/flutter/issues/107297#issue-1298925304 flutter#v3.1.0-0.0.pre.1542 debug arm64

@huycozy On 3.1.0-0.0.pre.1650 in the mapbox example app, going in and out "User Interface" test screen results in that native crash still. Doesn't reproduce that often anymore, but still does. Looks to be related to creation of a new plugin instance.

I still can not reproduce the issue on the latest stable and master channels with this reproduction step.

Demo
https://user-images.githubusercontent.com/104349824/179438996-ca46d77f-26aa-478a-9d92-a88c248c5161.mp4

flutter doctor -v
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.0.5 at /Users/huynq/Documents/GitHub/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (9 hours ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.69.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

[✓] Flutter (Channel master, 3.1.0-0.0.pre.1698, on macOS 12.2.1 21D62 darwin-x64, locale en-VN)
    • Flutter version 3.1.0-0.0.pre.1698 on channel master at /Users/huynq/Documents/GitHub/flutter_master
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a4ba62fd9d (17 hours ago), 2022-07-17 05:48:06 -0400
    • Engine revision b438edfd1a
    • Dart version 2.19.0 (build 2.19.0-5.0.dev)
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/huynq/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/huynq/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 13E113
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] IntelliJ IDEA Community Edition (version 2020.3.3)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] IntelliJ IDEA Community Edition (version 2022.1.1)
    • IntelliJ at /Users/huynq/Library/Application Support/JetBrains/Toolbox/apps/IDEA-C/ch-0/221.5591.52/IntelliJ IDEA CE.app
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart

[✓] VS Code (version 1.69.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • SM T225 (mobile) • R9JT3004VRJ • android-arm64  • Android 11 (API 30)
    • macOS (desktop)  • macos       • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)     • chrome      • web-javascript • Google Chrome 103.0.5060.114

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

It looks like you're testing on an emulator device. Could you retry on a physical device instead to see if the issue still reproduces?

I have the same issue. When I switch between screens very fast, after a few repeats I manage to crash my app.

    Example code:

import 'package:flutter/material.dart';
import 'package:mapbox_gl/mapbox_gl.dart';

void main() {
  runApp(const MapTest());
}

class MapTest extends StatelessWidget {
  const MapTest({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MapTest',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  const HomeScreen({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        actions: [
          IconButton(
            onPressed: () => Navigator.of(context).push(
                MaterialPageRoute(builder: (context) => const MapScreen())),
            icon: const Icon(Icons.map),
          ),
        ],
      ),
      body: const Center(
        child: Icon(
          Icons.home,
          size: 50,
        ),
      ),
    );
  }
}

class MapScreen extends StatefulWidget {
  const MapScreen({super.key});

  @override
  State<MapScreen> createState() => _MapScreenState();
}

class _MapScreenState extends State<MapScreen> {
  late MapboxMapController mapController;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        actions: [
          IconButton(
            onPressed: () => Navigator.of(context).pop(),
            icon: const Icon(Icons.home),
          ),
        ],
      ),
      body: MapboxMap(
        accessToken: const String.fromEnvironment('SDK_REGISTRY_TOKEN'),
        initialCameraPosition: const CameraPosition(target: LatLng(0, 0)),
        onMapCreated: _onMapCreated,
      ),
    );
  }

  Future<void> _onMapCreated(MapboxMapController controller) async {
    mapController = controller;
  }
}

Mapbox version: 0.16.0

    flutter doctor -v output:

[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-x64, locale pl-PL)
    • Flutter version 3.0.5 at /Users/glowacki/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (9 days ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
    • Android SDK at /Users/glowacki/Library/Android/sdk
    • Platform android-33, build-tools 33.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • M2006C3MNG (mobile) • SSY9AAZLZXTKQWJN • android-arm    • Android 10 (API 29)
    • macOS (desktop)     • macos            • darwin-x64     • macOS 12.4 21F79 darwin-x64
    • Chrome (web)        • chrome           • web-javascript • Google Chrome 103.0.5060.134

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Same issue here, also with mapbox :/

I've been working on that problem quite a long time and did not managed to solve it. I've thought that newest version on flutter might help with that but it did no changes with that case at all. It would be helpful if someone could find a workaround for this problem.

I use a custom build of mapbox native and get the same crash. Now I have examined this with a debug build. The reason for this crash are some timing problems.
Point of crash is map_renderer.cpp in method void MapRenderer::render(JNIEnv&) {
Under flutter 3 renderer could be NULL. This happens when map is already destroyed when trying to draw.
For my custom build I fixed this issue by checking var renderer is valid:
void MapRenderer::render(JNIEnv&) {

+  if (!renderer) {
+    Log::Error(Event::Android, "MapRenderer::render RENDERER IS NULL");
+    return;

I know, this is not a practical solution as it requires to recompile mapbox native library - but it is a start.
I am going to check whether this could be catched on dart side.

Mapbox Andorid SDK that Mapbox Flutter is using at the moment is not supported anymore, so recompiling the plugin is not an option.
Any possible workaround that doesn't involve touching the native C++ library behind Mapbox Android SDK?

Any possibility it's related to what was stated here?
https://github.com/flutter/flutter/issues/103630#issuecomment-1193013914

Hi @AAverin and anyone else facing this issue, there is a new beta release: 3.3.0 (also see https://github.com/flutter/flutter/issues/103630#issuecomment-1190733675). Could you retry the issue on the latest beta to see if the issue still reproduces?

Mapbox is using SurfaceAndroidViewController for hybrid composition: https://github.com/flutter-mapbox-gl/maps/blob/3496907955cd4b442e4eb905d67e8d46692174f1/mapbox_gl_platform_interface/lib/src/method_channel_mapbox_gl.dart#L160
Was initSurfaceAndroidView also changed and calling create is no longer needed?

Just updating to Flutter beta track 3.3 doesn't fix the crash

If calling create is no longer needed when creating SurfaceAndroidViewController and PlatformViewsService with expensive controller, @huycozy could you please link to some Flutter issue or at least commit when this was changed?
Just trying to understand some reasoning behind the change and link it to a possible fix PR in mapbox repo.

@AAverin There is issue #103630 (closed and recently fixed) related to this issue as far as I can see (the issue was initially filed regarding Mapbox).
By the way, there is a new issue #107313 related to AndroidView that you can follow.
Keeping this open for further insights from the team.

I am testing now with the controller.create() line removed here https://github.com/flutter-mapbox-gl/maps/blob/3496907955cd4b442e4eb905d67e8d46692174f1/mapbox_gl_platform_interface/lib/src/method_channel_mapbox_gl.dart#L160.
Seems to be quite stable so far, no NPE crash. I will keep checking and if everything is fine make a PR to Mapbox Flutter for a possible fix.

Ok, this was a bit too rushed. Crash is still there even with controller.create() line removed.

Just to be safe I have downgraded to flutter 2.10.5, returned back controller.create() call for SurfaceAndroidViewController and tested my exact codebase state.
No crash on Flutter 2.10.5.

@AAverin Based on the number of people affected by this issue and it's not happening on Flutter 2.10.5 as you confirmed in https://github.com/flutter/flutter/issues/107297#issuecomment-1196378158, I label this issue for further opinions/investigation from the team. Thanks!

Application Crashes as I navigate between pages  and come back to MapBox page. This is happening only in the Android, IOS release build working fine . Android both release and debug crashes.
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 9791 (GLThread 34140), pid 9313 (azei.totempole2)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'xiaomi/whyred/whyred:9/PKQ1.180904.001/V<IP_ADDRESS>.PEIMIXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 9313, tid: 9791, name: GLThread 34140  >>> com.swazei.totempole2 <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
    x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>000000  x2<PHONE_NUMBER>000001  x3  0000007a760ec708
    x4  0000007a48bf1f98  x5<PHONE_NUMBER>000000  x6  ff284900ff302349  x7  7f7f7f7f7f7f7f7f
    x8<PHONE_NUMBER>000000  x9<PHONE_NUMBER>000001  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000000
    x12 0000007a48bf2134  x13 0000007a48bf2128  x14<PHONE_NUMBER>000000  x15 0000007a48bf0bf8
    x16 0000007a471e3f70  x17 0000007af6d5eb14  x18<PHONE_NUMBER>000001  x19 0000007a48bf20b8
    x20<PHONE_NUMBER>000000  x21<PHONE_NUMBER>000001  x22<PHONE_NUMBER>ac4b38  x23<PHONE_NUMBER>ac4b18
    x24 0000c1b36f03f7e8  x25 0000007a48bf3588  x26 0000007a4dbe00a0  x27<PHONE_NUMBER>000002
    x28 0000007a48bf2130  x29 0000007a48bf2050
    sp  0000007a48bf2040  lr  0000007a46dce81c  pc  0000007a46dce948
backtrace:
    #00 pc<PHONE_NUMBER>11d948  /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/lib/arm64/libmapbox-gl.so
    #01 pc<PHONE_NUMBER>11d818  /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/lib/arm64/libmapbox-gl.so
    #02 pc<PHONE_NUMBER>0adc2c  /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/lib/arm64/libmapbox-gl.so
    #03 pc<PHONE_NUMBER>5603e0  /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
    #04 pc<PHONE_NUMBER>04bea0  /dev/ashmem/dalvik-jit-code-cache (deleted) (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame+96)
    #05 pc<PHONE_NUMBER>557388  /system/lib64/libart.so (art_quick_invoke_stub+584)
    #06 pc<PHONE_NUMBER>0cfcc8  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
    #07 pc<PHONE_NUMBER>280338  /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
    #08 pc<PHONE_NUMBER>27a34c  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
    #09 pc<PHONE_NUMBER>526b60  /system/lib64/libart.so (MterpInvokeSuper+1420)
    #10 pc<PHONE_NUMBER>549a14  /system/lib64/libart.so (ExecuteMterpImpl+14356)
    #11 pc<PHONE_NUMBER>1bfcb0  /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/base.apk!classes3.dex (deleted) (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame)
    #12 pc<PHONE_NUMBER>254050  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3557229793+488)
    #13 pc<PHONE_NUMBER>259b44  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
    #14 pc<PHONE_NUMBER>27a330  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
    #15 pc<PHONE_NUMBER>527444  /system/lib64/libart.so (MterpInvokeInterface+1392)
    #16 pc<PHONE_NUMBER>549b94  /system/lib64/libart.so (ExecuteMterpImpl+14740)
    #17 pc<PHONE_NUMBER>1c072e  /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/base.apk!classes3.dex (deleted) (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.guardedRun+998)
    #18 pc<PHONE_NUMBER>254050  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3557229793+488)
    #19 pc<PHONE_NUMBER>259b44  /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
    #20 pc<PHONE_NUMBER>27a330  /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
    #21 pc<PHONE_NUMBER>527808  /system/lib64/libart.so (MterpInvokeDirect+296)
    #22 pc<PHONE_NUMBER>549a94  /system/lib64/libart.so (ExecuteMterpImpl+14484)
    #23 pc<PHONE_NUMBER>1c0ca0  /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.swazei.totempole2-g9Bj7xkxkez2k7QDtVnitQ==/base.apk!classes3.dex (deleted) (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.run+48)
    #24 pc<PHONE_NUMBER>254050  /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.3557229793+488)
    #25 pc<PHONE_NUMBER>516d7c  /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
    #26 pc<PHONE_NUMBER>5604fc  /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
    #27 pc<PHONE_NUMBER>557388  /system/lib64/libart.so (art_quick_invoke_stub+584)
    #28 pc<PHONE_NUMBER>0cfcc8  /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
    #29 pc<PHONE_NUMBER>45dd7c  /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
    #30 pc<PHONE_NUMBER>45ee38  /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
    #31 pc<PHONE_NUMBER>489d28  /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
    #32 pc<PHONE_NUMBER>090328  /system/lib64/libc.so (__pthread_start(void*)+36)
    #33 pc<PHONE_NUMBER>023a28  /system/lib64/libc.so (__start_thread+68)
Lost connection to device.

[√] Flutter (Channel master, 3.1.0-0.0.pre.1709, on Microsoft Windows [Version 10.0.22621.232], locale en-US)
[√] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[√] Chrome - develop for the web
[√] Visual Studio - develop for Windows (Visual Studio Community 2022 17.2.6)
[√] Android Studio (version 2021.2)
[√] VS Code (version 1.69.2)
[√] VS Code (version 1.70.0-insider)
[√] Connected device (5 available)
[√] HTTP Host Availability

Any updates on this issue?

Looking for update too.

@AAverin Do you still see the crash if you change initSurfaceAndroidView to initExpensiveAndroidView. In Flutter 3, we switched away from using Hybrid Composition by default, but it looks like it is causing bugs for Android Views that don't draw to the canvas provided by a ViewParent. This is being addressed in https://github.com/flutter/flutter/issues/107313.
Using initExpensiveAndroidView sets the Platform View to be rendered with Hybrid Composition in Flutter 3.
And yes, create still needs to be called.

And yes, create still needs to be called.

There's actually a regression I just found where we're double-calling create now for HC in some cases. I'm fixing it as part of my in-progress PR.
Since we already shipped it and people are starting to remove create as a workaround, I'm going to have to handle it internally by dropping duplicate create's, and then clean this up later in a new API that didn't ship with two different behaviors.

@stuartmorgan Sorry if I've misunderstood, but I'm assigning you and marking this P3 based on your comment.

Given:

Ok, this was a bit too rushed. Crash is still there even with controller.create() line removed.

it sounds like the original issue here won't be fixed by my PR, but we can re-test once it lands.

Since we already shipped it and people are starting to remove create as a workaround, I'm going to have to handle it internally by dropping duplicate create's, and then clean this up later in a new API that didn't ship with two different behaviors.

I was incorrect; this regression is currently beta-only. So I'll fix it with something cleaner that we can cherry-pick to beta.

I can confirm this crash is still happening on 3.3.0 stable, while the UX issues are now solved pressing back from the map causes the app to crash a few seconds later. This was seen on emulator and on a real device (Pixel 2 XL).
`F/crashpad(15906): -----ABORT CRASHPAD MINIDUMP-----
I/Choreographer(13108): Skipped 32 frames!  The application may be doing too much work on its main thread.
F/libc    (13108): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 15410 (GLThread 1030), pid 13108 (re.flutter.core)

Build fingerprint: 'google/taimen/taimen:11/RP1A.201005.004.A1/6934943:user/release-keys'
Revision: 'rev_10'
ABI: 'arm64'
Timestamp: 2022-08-30 15:30:18-0500
pid: 13108, tid: 15410, name: GLThread 1030  >>> com.coolfire.flutter.core <<<
uid: 10038
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>000000  x2<PHONE_NUMBER>000001  x3  000000746c8fd605
x4  00000073f2bc8c48  x5<PHONE_NUMBER>00004a  x6  284901ff3a535328  x7  7f7f7f7f7f7f7f7f
x8<PHONE_NUMBER>000000  x9<PHONE_NUMBER>000001  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000000
x12<PHONE_NUMBER>000051  x13 00000073f2bc8dc8  x14<PHONE_NUMBER>000000  x15 00000000ebad6a89
x16 00000073f31fef70  x17 00000076fe348f60  x18 000000736abf0000  x19 00000073f2bc8d68
x20<PHONE_NUMBER>000000  x21<PHONE_NUMBER>000001  x22<PHONE_NUMBER>305aa8  x23<PHONE_NUMBER>305a88
x24<PHONE_NUMBER>dc0715  x25 00000073f2bca000  x26<PHONE_NUMBER>0002c1  x27<PHONE_NUMBER>000002
x28 00000073f2bc8de0  x29 00000073f2bc8d00
lr  00000073f2de981c  sp  00000073f2bc8cf0  pc  00000073f2de9948  pst<PHONE_NUMBER>000000
backtrace:
#00 pc<PHONE_NUMBER>11d948  /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!libmapbox-gl.so (offset 0x30e7000) (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
#01 pc<PHONE_NUMBER>11d818  /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!libmapbox-gl.so (offset 0x30e7000) (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
#02 pc<PHONE_NUMBER>0adc2c  /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!libmapbox-gl.so (offset 0x30e7000) (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
#03 pc<PHONE_NUMBER>13ced4  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: d0f321775158ed00df284edfabf672b6)
#04 pc<PHONE_NUMBER>087fb4  /memfd:jit-cache (deleted) (offset 0x2000000) (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame+100)
#05 pc<PHONE_NUMBER>133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: d0f321775158ed00df284edfabf672b6)
#06 pc<PHONE_NUMBER>1a97e8  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: d0f321775158ed00df284edfabf672b6)
#07 pc<PHONE_NUMBER>31c040  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: d0f321775158ed00df284edfabf672b6)
#08 pc<PHONE_NUMBER>312228  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+912) (BuildId: d0f321775158ed00df284edfabf672b6)
#09 pc<PHONE_NUMBER>68647c  /apex/com.android.art/lib64/libart.so (MterpInvokeSuper+1804) (BuildId: d0f321775158ed00df284edfabf672b6)
#10 pc<PHONE_NUMBER>12d894  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_super+20) (BuildId: d0f321775158ed00df284edfabf672b6)
#11 pc<PHONE_NUMBER>3f53c8  [anon:dalvik-classes20.dex extracted in memory from /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!classes20.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame)
#12 pc<PHONE_NUMBER>6873a4  /apex/com.android.art/lib64/libart.so (MterpInvokeInterface+1812) (BuildId: d0f321775158ed00df284edfabf672b6)
#13 pc<PHONE_NUMBER>12da14  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_interface+20) (BuildId: d0f321775158ed00df284edfabf672b6)
#14 pc<PHONE_NUMBER>3f5e42  [anon:dalvik-classes20.dex extracted in memory from /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!classes20.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.guardedRun+994)
#15 pc<PHONE_NUMBER>687fe8  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+1248) (BuildId: d0f321775158ed00df284edfabf672b6)
#16 pc<PHONE_NUMBER>12d914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: d0f321775158ed00df284edfabf672b6)
#17 pc<PHONE_NUMBER>3f63c8  [anon:dalvik-classes20.dex extracted in memory from /data/app/~~teoNPxgO3C9Bj7rc77jgYQ==/com.coolfire.flutter.core-ZCcsvQG7FJoNaQk7uDGKAQ==/base.apk!classes20.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.run+52)
#18 pc<PHONE_NUMBER>3094d0  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.7618685802058321727)+264) (BuildId: d0f321775158ed00df284edfabf672b6)
#19 pc<PHONE_NUMBER>6740c0  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+776) (BuildId: d0f321775158ed00df284edfabf672b6)
#20 pc<PHONE_NUMBER>13cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: d0f321775158ed00df284edfabf672b6)
#21 pc<PHONE_NUMBER>133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: d0f321775158ed00df284edfabf672b6)
#22 pc<PHONE_NUMBER>1a97e8  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: d0f321775158ed00df284edfabf672b6)
#23 pc<PHONE_NUMBER>55c384  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValuesart::ArtMethod*(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+460) (BuildId: d0f321775158ed00df284edfabf672b6)
#24 pc<PHONE_NUMBER>5ac204  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+1308) (BuildId: d0f321775158ed00df284edfabf672b6)
#25 pc<PHONE_NUMBER>0b0758  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+64) (BuildId: c78cdff5b820a550771130d6bde95081)
#26 pc<PHONE_NUMBER>050150  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: c78cdff5b820a550771130d6bde95081)
Lost connection to device.
`
[✓] Flutter (Channel stable, 3.3.0, on macOS 12.5.1 21G83 darwin-x64, locale en-US)
• Flutter version 3.3.0 on channel stable at /Users/bhawkins/FlutterSDK/flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision ffccd96b62 (20 hours ago), 2022-08-29 17:28:57 -0700
• Engine revision 5e9e0e0aa8
• Dart version 2.18.0
• DevTools version 2.15.0
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
• Android SDK at /Users/bhawkins/Library/Android/sdk
• Platform android-33, build-tools 33.0.0
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 13F100
• CocoaPods version 1.11.3
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.2)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.12+0-b1504.28-7817840)
[✓] Android Studio (version 4.1)
• Android Studio at /Users/bhawkins/Desktop/Android Studio Mil.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
[✓] VS Code (version 1.70.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.44.0
[✓] Connected device (3 available)
• Pixel 2 XL (mobile) • 712KPPB1140192 • android-arm64  • Android 11 (API 30)
• macOS (desktop)     • macos          • darwin-x64     • macOS 12.5.1 21G83 darwin-x64
• Chrome (web)        • chrome         • web-javascript • Google Chrome 104.0.5112.101
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

This issue seems kind of stale. Is the Flutter Team going to resolve the issue any time soon? My company would really like to release their apps without downgrading flutter.

android mapbox is crashing as soon as it is rendered. Some times it takes time to crash
happening on 3.3.0 as well

This issue seems kind of stale. Is the Flutter Team going to resolve the issue any time soon? My company would really like to release their apps without downgrading flutter.

The crash doesn't happen for me when myLocationEnabled is set to false. I haven't implemented this yet, but my plan is to set it to false for Android, and add a custom "my location" marker.

android mapbox is crashing as soon as it is rendered. Some times it takes time to crash happening on 3.3.0 as well

I'm only seeing a crash after popping a MapboxMap from the navigation stack. What Android version and device model are you testing on?

Also mapbox transparent background is showing black background in android. works fine in iOS

This may be a different issue. My custom markers sometimes show completely black on Android emulators. I haven't found anyone who's experienced this on a real device, though.

This issue seems kind of stale. Is the Flutter Team going to resolve the issue any time soon? My company would really like to release their apps without downgrading flutter.

The crash doesn't happen for me when myLocationEnabled is set to false. I haven't implemented this yet, but my plan is to set it to false for Android, and add a custom "my location" marker.

Well, myLocationEnabled is set to false by default.

https://github.com/flutter-mapbox-gl/maps/tree/master/example

I see. Took a quick look at the Mapbox sample and most examples don't set myLocationEnabled at all, so simply setting it to false (for those who had previously set it to true) probably isn't a complete workaround. I will do some more testing.

If it's happening on 3.3, then the double-create issue I fixed was apparently unrelated, so un-assigning.
@AAverin Have you tried switching to initExpensiveAndroidView as suggested here?

@stuartmorgan I have experimented with different kinds of the ways plugin view can be created while trying to fix the other issue with distortion.
Applying initExpensiveAndroidView was causing significant slowdown of the plugin, as far as I remember.
Original branch where I have tried this is still there: https://github.com/flutter-mapbox-gl/maps/tree/fix-flutter-3

We use flutter 3.3 and experience similar crashes when disposing MapboxMap while it's still loading something - reliably. We use initSurfaceAndroidView (the hybrid mode), although it also crashes with initEspensiveAndroidView (and it's also significantly slower) and with virtual device mode.
Worked flawlessly for us before with flutter 2.5.3.

Worked flawlessly for us before with flutter 2.5.3.

Given that the bug appears to be that the Mapbox renderer is still trying to do things after the plugin has been destroyed, it's likely that this is a latent bug is Mapbox that was being masked in earlier versions of Flutter (e.g., maybe older versions of Flutter were leaking the plugin).
https://github.com/flutter/flutter/issues/105965 is what seems like a very similar issue with Google Maps: the actual bug is in Google Maps, with its internal rendering thread trying to use things that have been destroyed, but it started happening much more frequently in Flutter 3.0.

@stuartmorgan problem is that Mapbox native SDK is no longer supported and there is no way a fix will be made there.
If we find a workaround for the Flutter integration layer – that can be implemented, because Flutter plugin is built by the community.
Still, at the moment everyone, who uses Mapbox, has to stay on older Flutter version for every new product release.

If you're interested in investigating this from the plugin side, I would suggest wrapping the view you return from your platform view factory in a view you control, instrumenting it, and seeing if there are behavioral differences in its lifecycle between 2.10 and 3.3. E.g., comparing when the view is destroyed. You could also experiment with artificially extending the lifetime of the Mapbox view using that wrapper, to see how that affects the crash.

@stuartmorgan Good suggestion, I'll experiment with wrappers and extending lifetime.

I am also experiencing this crash on Flutter 3.3.1.  Setting myLocationEnabled: false cause the Segfault to stop for the moment.  I have more features to add to my map which concerns me about what I will face next.

If you're interested in investigating this from the plugin side, I would suggest wrapping the view you return from your platform view factory in a view you control, instrumenting it, and seeing if there are behavioral differences in its lifecycle between 2.10 and 3.3. E.g., comparing when the view is destroyed. You could also experiment with artificially extending the lifetime of the Mapbox view using that wrapper, to see how that affects the crash.

Did this and my crashes went away. This is really bad code, but apparently works. I had to modify the mapbox plugin, see sample below:
class WrappedPlatformViewsService {
  static AndroidViewController initAndroidView({
    required int id,
    required String viewType,
    required TextDirection layoutDirection,
    dynamic creationParams,
    MessageCodec<dynamic>? creationParamsCodec,
    VoidCallback? onFocus,
  }) {
    final view = PlatformViewsService.initAndroidView(
      id: id,
      viewType: viewType,
      layoutDirection: layoutDirection,
      creationParams: creationParams,
      creationParamsCodec: creationParamsCodec,
      onFocus: onFocus,
    );
    return TextureAndroidViewControllerWrapper(view as TextureAndroidViewController);
  }
}

class TextureAndroidViewControllerWrapper implements TextureAndroidViewController {
  TextureAndroidViewControllerWrapper(this._controller);

  final TextureAndroidViewController _controller;

  @override
  PointTransformer get pointTransformer => _controller.pointTransformer;
  set pointTransformer(PointTransformer transformer) => _controller.pointTransformer = transformer;

  @override
  void addOnPlatformViewCreatedListener(PlatformViewCreatedCallback listener) =>
    _controller.addOnPlatformViewCreatedListener(listener);

  @override
  bool get awaitingCreation => _controller.awaitingCreation;

  @override
  Future<void> clearFocus() => _controller.clearFocus();

  @override
  Future<void> create({Size? size}) => _controller.create(size: size);

  @override
  // ignore: invalid_use_of_visible_for_testing_member
  List<PlatformViewCreatedCallback> get createdCallbacks => _controller.createdCallbacks;

  @override
  Future<void> dispatchPointerEvent(PointerEvent event) => _controller.dispatchPointerEvent(event);

  @override
  //! workaround for flutter 3.0
  Future<void> dispose() {
    //? instead of this
    // _controller.dispose();
    //? we do this
    unawaited(Future.delayed(Duration(seconds: 5), _controller.dispose));
    return Future(() {});
  }

  @override
  bool get isCreated => _controller.isCreated;

  @override
  void removeOnPlatformViewCreatedListener(PlatformViewCreatedCallback listener) => _controller.removeOnPlatformViewCreatedListener(listener);

  @override
  Future<void> sendMotionEvent(AndroidMotionEvent event) => _controller.sendMotionEvent(event);

  @override
  Future<void> setLayoutDirection(TextDirection layoutDirection) => _controller.setLayoutDirection(layoutDirection);

  @override
  Future<void> setOffset(Offset off) => _controller.setOffset(off);

  @override
  Future<Size> setSize(Size size) => _controller.setSize(size);

  @override
  int? get textureId => _controller.textureId;

  @override
  int get viewId => _controller.viewId;
}

See this PR for more info and use at own risk: https://github.com/flutter-mapbox-gl/maps/pull/1172

Linking to the similar problem in google maps https://github.com/flutter/flutter/issues/105965

@srmanc I solved it with your PR, thank you!

@srmanc Did you compare 2.10 and 3.x to see if there were obvious differences in when the view was torn down? I still haven't had a chance to investigate that aspect further from my end yet.

@andrea689 Glad to hear it!
@stuartmorgan I took a quick look, but changes are several months old and probably go deeper inside native channels in java/kotlin (flutter/platform_views), I could not find code for that. Probably it's not published anyway?

Sorry, I meant did you try running your modified plugin in both 2.10 and 3.x to see is there was an obvious difference in when your view destruction was called. Not from a Flutter code standpoint, but just observed behavior within the plugin.

I only tried 2.5.3 and to my observation disposal happens more or less in the same moment. That's why I suspect something has changed underneath, since the dispose method is async.

@srmanc have tested your changes problem still exists in 3.x.x

@Shiba-Kar Can you please describe the exact test you did in order to reproduce the crash?

@stuartmorgan This issue seems be the kind that can affect multiple plugins, blocking update to Flutter 3 for many devs.
Is this issue investigated by the team or it is now on the community to resolve it?
If it is investigated, can we have a higher priority set?
If it is not planned to investigate by the team, can it be clearly stated here and in the Google Maps plugin issue?

Is this issue investigated by the team or it is now on the community to resolve it?

This isn't an either/or; I've done some investigation (to see if there's an obvious reason Flutter 3 would trigger latent destruction race conditions more often), but there are certainly things the community could do as well (like find a specific regression commit, as mentioned above).

And give some feedback on https://github.com/flutter/flutter/issues/107297#issuecomment-1243590238. I'm a bit surprised about the lack of comments on whether the workaround works (and if it does not - what happened), given the fair amount of reports of this issue.

@srmanc I didn't think that your attempt to workaround by adding a 5 second delay required feedback. It seems to solve the issue for some people and can be a point in the right direction, but it won't be something to merge into the main codebase of mapbox plugin.
@stuartmorgan I would assume that this issue in this or a similar way is affecting many plugins. Mapbox is not the best example because it relies on an old native codebase that is no longer maintained and can't be really touched. Besides, setup of all the Mapbox pieces is quite complicated to debug.
Are there any other known plugins besides mapbox and google maps, with a simpler setup, that are affected by this issue?  Maybe there a simpler way to debug this.
I can try to find some time in October to debug this issue. Can't promise anything sooner as Flutter and Mapbox is something I use in my personal projects, developed in my spare time parallel to life and regular job.

@AAverin I realize the nature of the workaround (hence the title). However. Given that the used mapbox library is deprecated, probably misbehaving in the sense of touching resources outside of the lifecycle, and given that flutter probably merely behaves more strict and does nothing, I conclude it makes little sense in forcing flutter to fix something that (again, probably) isn't broken.
The 5s delay is, I admit, exaggerated and could be reduced to a few milliseconds. More testing is required, I can report however that for our case extensive and aggressive testing produced favorable results.
I fear that, given that Mapbox fails to contribute to the existing flutter wrapper and makes zero efforts towards v10, it's on us as a community to try and make this work.

@stuartmorgan I would assume that this issue in this or a similar way is affecting many plugins.

What is this assumption based on?

Are there any other known plugins besides mapbox and google maps, with a simpler setup, that are affected by this issue? Maybe there a simpler way to debug this.

What do you mean by "a similar setup"? As I said above, Google Maps has an internal race condition with its rendering thread that is causing the crash.

Any updates on this issue?

any updates yet?

I am looking for some help debugging a new critical native crash that affects Mapbox Flutter plugin.
The issue doesn't reproduce on Flutter 2.13 and is only present in Flutter 3.x. No changes to the way plugin was integrated were made and no changes to the native code that plugin relies on were made. The only change was upgrade to Flutter 3.
I have checked the changes done in Flutter engine between 2.13 and 3.0 releases and it's only dart revision: https://github.com/flutter/engine/compare/3096903c8923608d3c1ccf8058a29c31a2bfbc53..d1b9a6938ad77326ac3a94d92bbc77933ed829ed.
Any insight on where to dig?
Steps to Reproduce

Execute flutter run on the code sample
Click on any button that would open the map (try again if it didn't crash)
Observer native crash

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_gphone64_arm64/emulator64_arm64:12/S2B2.211203.006/8015633:userdebug/dev-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2022-07-08 13:33:24.673577251+0200
Process uptime: 0s
Cmdline: com.mapbox.mapboxglexample
pid: 4347, tid: 4489, name: GLThread 98  >>> com.mapbox.mapboxglexample <<<
uid: 10152
tagged_addr_ctrl:<PHONE_NUMBER>000001
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
    x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>000000  x2<PHONE_NUMBER>000001  x3<PHONE_NUMBER>0c68fc
    x4  00000072b018e338  x5<PHONE_NUMBER>00004a  x6  4900ff55284901ff  x7  7f7f7f7f7f7f7f7f
    x8<PHONE_NUMBER>000000  x9  00000072b018f040  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000001
    x12<PHONE_NUMBER>0000ff  x13<PHONE_NUMBER>000000  x14 7ffbffff00000000  x15<PHONE_NUMBER>000000
    x16 00000072c0d5ef70  x17 00000075f77d72cc  x18<PHONE_NUMBER>02c000  x19 00000072b018e448
    x20<PHONE_NUMBER>000000  x21<PHONE_NUMBER>000001  x22 00000072dde6f7a4  x23<PHONE_NUMBER>001070
    x24<PHONE_NUMBER>200880  x25 00000072b018e5b0  x26 00000072b018e5e0  x27 00000072b018e5b0
    x28 00000072b018e4b0  x29 00000072b018e3e0
    lr  00000072c094981c  sp  00000072b018e3d0  pc  00000072c0949948  pst<PHONE_NUMBER>001000
backtrace:
      #00 pc<PHONE_NUMBER>11d948  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #01 pc<PHONE_NUMBER>11d818  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #02 pc<PHONE_NUMBER>0adc2c  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #03 pc<PHONE_NUMBER>2d7644  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #04 pc<PHONE_NUMBER>20a0a0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #05 pc<PHONE_NUMBER>4297a4  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame+12)
      #06 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #07 pc<PHONE_NUMBER>42b484  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame+0)
      #08 pc<PHONE_NUMBER>20af10  /apex/com.android.art/lib64/libart.so (nterp_helper+7712) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #09 pc<PHONE_NUMBER>42befa  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.guardedRun+994)
      #10 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #11 pc<PHONE_NUMBER>42c490  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.run+48)
      #12 pc<PHONE_NUMBER>2cdd64  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #13 pc<PHONE_NUMBER>317fb0  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #14 pc<PHONE_NUMBER>3cc480  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #15 pc<PHONE_NUMBER>45efd8  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #16 pc<PHONE_NUMBER>0b1810  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: b2e84269f59e7b1658e3a470fd302458)
      #17 pc<PHONE_NUMBER>0512f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: b2e84269f59e7b1658e3a470fd302458)

Expected results: App shouldn't crash
Actual results: App crashes with native crash that doesn't happen in Flutter 2.13
Code sample
Logs

This still seems to be an issue. When I am running flutter it works fine until I navigate from the Mapbox widget and then back, it crashes with the same error as described

@fluttermoonger, have you switched to the official Mapbox Flutter plugin? https://pub.dev/packages/mapbox_maps_flutter

@fluttermoonger, have you switched to the official Mapbox Flutter plugin? https://pub.dev/packages/mapbox_maps_flutter

No I have not done that. Didn't even know that there was an official one. Will it work with annotations?

@fluttermoonger, have you switched to the official Mapbox Flutter plugin? https://pub.dev/packages/mapbox_maps_flutter

No I have not done that. Didn't even know that there was an official one. Will it work with annotations?

I believe it's still in beta. According to that page, it doesn't yet support view annotations, unfortunately.

@fluttermoonger, have you switched to the official Mapbox Flutter plugin? https://pub.dev/packages/mapbox_maps_flutter

No I have not done that. Didn't even know that there was an official one. Will it work with annotations?

I believe it's still in beta, so I don't think it was officially announced yet by Mapbox. According to that page, though, it doesn't yet support view annotations.

Ok. Then I need to run the old mapbox_gl for some time longer and keep an eye on the repo.

I am looking for some help debugging a new critical native crash that affects Mapbox Flutter plugin.
The issue doesn't reproduce on Flutter 2.13 and is only present in Flutter 3.x. No changes to the way plugin was integrated were made and no changes to the native code that plugin relies on were made. The only change was upgrade to Flutter 3.
I have checked the changes done in Flutter engine between 2.13 and 3.0 releases and it's only dart revision: https://github.com/flutter/engine/compare/3096903c8923608d3c1ccf8058a29c31a2bfbc53..d1b9a6938ad77326ac3a94d92bbc77933ed829ed.
Any insight on where to dig?
Steps to Reproduce

Execute flutter run on the code sample
Click on any button that would open the map (try again if it didn't crash)
Observer native crash

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_gphone64_arm64/emulator64_arm64:12/S2B2.211203.006/8015633:userdebug/dev-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2022-07-08 13:33:24.673577251+0200
Process uptime: 0s
Cmdline: com.mapbox.mapboxglexample
pid: 4347, tid: 4489, name: GLThread 98  >>> com.mapbox.mapboxglexample <<<
uid: 10152
tagged_addr_ctrl:<PHONE_NUMBER>000001
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
Cause: null pointer dereference
    x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>000000  x2<PHONE_NUMBER>000001  x3<PHONE_NUMBER>0c68fc
    x4  00000072b018e338  x5<PHONE_NUMBER>00004a  x6  4900ff55284901ff  x7  7f7f7f7f7f7f7f7f
    x8<PHONE_NUMBER>000000  x9  00000072b018f040  x10<PHONE_NUMBER>000001  x11<PHONE_NUMBER>000001
    x12<PHONE_NUMBER>0000ff  x13<PHONE_NUMBER>000000  x14 7ffbffff00000000  x15<PHONE_NUMBER>000000
    x16 00000072c0d5ef70  x17 00000075f77d72cc  x18<PHONE_NUMBER>02c000  x19 00000072b018e448
    x20<PHONE_NUMBER>000000  x21<PHONE_NUMBER>000001  x22 00000072dde6f7a4  x23<PHONE_NUMBER>001070
    x24<PHONE_NUMBER>200880  x25 00000072b018e5b0  x26 00000072b018e5e0  x27 00000072b018e5b0
    x28 00000072b018e4b0  x29 00000072b018e3e0
    lr  00000072c094981c  sp  00000072b018e3d0  pc  00000072c0949948  pst<PHONE_NUMBER>001000
backtrace:
      #00 pc<PHONE_NUMBER>11d948  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #01 pc<PHONE_NUMBER>11d818  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #02 pc<PHONE_NUMBER>0adc2c  /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/lib/arm64/libmapbox-gl.so (BuildId: 5340fab4c92fd87f8304775de4bc95627e863fd7)
      #03 pc<PHONE_NUMBER>2d7644  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #04 pc<PHONE_NUMBER>20a0a0  /apex/com.android.art/lib64/libart.so (nterp_helper+4016) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #05 pc<PHONE_NUMBER>4297a4  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.MapRenderer.onDrawFrame+12)
      #06 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #07 pc<PHONE_NUMBER>42b484  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.GLSurfaceViewMapRenderer.onDrawFrame+0)
      #08 pc<PHONE_NUMBER>20af10  /apex/com.android.art/lib64/libart.so (nterp_helper+7712) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #09 pc<PHONE_NUMBER>42befa  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.guardedRun+994)
      #10 pc<PHONE_NUMBER>20a044  /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #11 pc<PHONE_NUMBER>42c490  [anon:dalvik-classes2.dex extracted in memory from /data/app/~~Q0TqeVocFhBLh_eRCp4W2Q==/com.mapbox.mapboxglexample-2g_T8q8jdDQ3a3tJWF_j1g==/base.apk!classes2.dex] (com.mapbox.mapboxsdk.maps.renderer.glsurfaceview.MapboxGLSurfaceView$GLThread.run+48)
      #12 pc<PHONE_NUMBER>2cdd64  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #13 pc<PHONE_NUMBER>317fb0  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #14 pc<PHONE_NUMBER>3cc480  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #15 pc<PHONE_NUMBER>45efd8  /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992) (BuildId: adb75d6f792faa24b1bc8cf512fb112c)
      #16 pc<PHONE_NUMBER>0b1810  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: b2e84269f59e7b1658e3a470fd302458)
      #17 pc<PHONE_NUMBER>0512f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: b2e84269f59e7b1658e3a470fd302458)

Expected results: App shouldn't crash
Actual results: App crashes with native crash that doesn't happen in Flutter 2.13
Code sample
Logs

The issue still happening. Any help would be appreciated

For anyone interested in making progress on this issue, the most useful next step would be to bisect versions of Flutter master to figure out what the exact build that started failing is. That would give us an indication of what exactly changed that might have triggered a latent race condition in libmapbox-gl, and from there whether there's a feasible workaround that could be made either in Flutter or in the plugin.

There's also this workaround, use at your own risk: https://github.com/flutter-mapbox-gl/maps/pull/1172

same issue, try mapbox_gl_modified new package. work for me

@novriamsyah  migrate to  https://pub.dev/packages/mapbox_maps_flutter

@stuartmorgan
We worked on a minimal reproducable example that uses maplibre (which is an early for of mapbox) and it has the exact same problem.

Flutter version
Worked?

2.10.5
✅

3.10.0
❌

3.10.2
❌

3.10.5
❌

master (Flutter 3.9.0-20.0.pre.59 - revision 63e30480cd)
❌

You can see our example in this repository:
https://github.com/tappeddev/tapped_maplibre_flutter
I created multiple branches for the different flutter verisons:
flutter-2.10.5
flutter-3.10.5
flutter-master
Steps to reproduce the crash:

Run example app
Click on the button "run simple"
Close the page immediatly after it was pushed (sometimes even before the map was fully loaded)
Repeat this process a few times and it should crash

We did the exact same with the native android example app (can be found in the maplibre-gl-native repo) and we didn't see any problems.

I did a bisect of all the commits between 2.10.5 and 3.10.0:
This commit was the "bad" one:
d1c11213493c4dd1add018dd26b6238ad40efb41 is the first bad commit
commit d1c11213493c4dd1add018dd26b6238ad40efb41
Author: engine-flutter-autoroll<EMAIL_ADDRESS>Date:   Sat Mar 19 15:30:22 2022 -0400

    Roll Engine from 8403d67febdf to 8dc7cd1b1a33 (1 revision) (#100425)

 bin/internal/engine.version | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Which corresponds to this engine commit:
https://github.com/flutter/engine/commit/8dc7cd1b1a33b5da561ac859cdcc49705ad1e598

@johnmccutchan I see that you assigned yourself to the issue.
If you start working on it then please also take my latest workaround into consideration.
For this check the PR in https://github.com/maplibre/flutter-maplibre-gl/pull/259

Thanks @JulianBissekkou for finding the root cause commit to the engine repository. I will look into this next.

Thank you for the reproduction, I am able to get it to crash.

So whats the final decision? Should i migrate to a new dependencies like mapbox_maps_flutter?
Its really annoying to get errors when you are tring to build an MVP for your Startup

https://github.com/flutter-mapbox-gl/maps already has the fix implemented too (https://github.com/flutter-mapbox-gl/maps/pull/1293).
@fatihmerickoc If you are invested into Mapbox ecosystem, then migration to the new official mapbox_maps_flutter makes sense, although I still didn't see any development roadmaps for it.
If you are not in the Mapbox ecosystem or don't have to be – use Maplibre, all of the fixes from old community-driven Mapbox plugin are migrated to Maplibre plugin too, they are essentially the same from the flutter perspective, only underlying native libraries are different.

I actually have not been able to reproduce the null pointer crash. I keep getting heap corruption in the emulator. Still trying to reproduce.

@JulianBissekkou Could you confirm that you don't see the crash with https://github.com/flutter/engine/pull/43423 applied?

@johnmccutchan Do you know if this addresses the Flutter-side regression in https://github.com/flutter/flutter/issues/105965 as well? (There was an underlying bug in Google Maps that has been fixed, but it started happening a lot more in Flutter 3, and the crash has similar characteristics.)

@johnmccutchan
Can you explain how I am able to run the app with the latest engine version that contains your fix?
When will this change be release to beta or stable?

@johnmccutchan Do you know if this addresses the Flutter-side regression in #105965 as well? (There was an underlying bug in Google Maps that has been fixed, but it started happening a lot more in Flutter 3, and the crash has similar characteristics.)

The situation with the mapbox plugin was the same as well. The crash was already happening in old versions, but very rarely.
It's was fixed by disposing the map differently.

@felix-ht Can you point me at the PR that fixed how the map was disposed in the mapbox plugin? I'd like to read them.

@felix-ht
We used the same fix as well, but I didn't fully understand why this was needed and why the map continues to draw after we called destroy.


Update profanity.txt

This isn't getting merged, but thanks for the compliment. Very creative lmao.


Add "domain=wotlk" prefix to wowhead tooltip data attribute.

Fixes #1002
Tooltips for enchants were appearing as their retail version due to the omission of the domain parameter when populating the data-wowhead attribute. Given that this sim is scoped to wotlk I've added it to all tooltip attributes which should force tooltips to appear as their WOTLK version.

Thanks for the PR!


GH-4656 Ugly fix for intermediate join variables breaking down stream assumptions

GitHub issue resolved: #GH-4656
Briefly describe the changes proposed in this PR:
The PathIteration code adds some binding names that it uses internally. These bindings should be removed before passing them on, or other code might break.
This is a very ugly hack but should resolve the problem. I will think about something cleaner.

PR Author Checklist (see the contributor guidelines for more details):

[x] my pull request is self-contained
[ ] I've added tests for the changes I made
[x] I've applied code formatting (you can use mvn process-resources to format from the command line)
[x] I've squashed my commits where necessary
[x] every commit message starts with the issue number (GH-xxxx) followed by a meaningful description of the change

Hello @JervenBolleman
I have noticed that in your recent commit you referenced Issue GH-4656 as the problem being addressed. However, after reviewing the commit and the issue description, it seems that the referenced issue might have been accidentally mentioned.
If I understand correctly, this should fix issue 4646?

@JervenBolleman , with this fix, I get the same error with a bit more detail in the error message:
java.lang.AssertionError: We don't actually support adding a binding. asil : "QM"         at org.eclipse.rdf4j.query.algebra.evaluation.ArrayBindingSet.addBinding(ArrayBindingSet.java:336)         at org.eclipse.rdf4j.query.MutableBindingSet.addBinding(MutableBindingSet.java:30)         at org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:67)         at org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:47)         at org.eclipse.rdf4j.common.iteration.LookAheadIteration.lookAhead(LookAheadIteration.java:80) ...

@JervenBolleman , with this fix, I get the same error with a bit more detail in the error message:
java.lang.AssertionError: We don't actually support adding a binding. asil : "QM" at org.eclipse.rdf4j.query.algebra.evaluation.ArrayBindingSet.addBinding(ArrayBindingSet.java:336) at org.eclipse.rdf4j.query.MutableBindingSet.addBinding(MutableBindingSet.java:30) at org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:67) at org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:47) at org.eclipse.rdf4j.common.iteration.LookAheadIteration.lookAhead(LookAheadIteration.java:80) ...

I am getting the same error, can we maybe consider reverting this element in getNextElement to how it was in 3.7.7 ?

Sorry but I am on vacation and I couldn't properly fix it before heading
out without laptop.
Reverting the next element method just leaves the problem in place for
later in the evaluation.
The issue is unexpected variables being added to the query evaluation. This
should be fixed consistently or it could pop up in the future again
elsewhere.
On Thu, Jul 20, 2023, 17:54 vallerap @.***> wrote:

@JervenBolleman https://github.com/JervenBolleman , with this fix, I
get the same error with a bit more detail in the error message:
java.lang.AssertionError: We don't actually support adding a binding. asil
: "QM" at
org.eclipse.rdf4j.query.algebra.evaluation.ArrayBindingSet.addBinding(ArrayBindingSet.java:336)
at
org.eclipse.rdf4j.query.MutableBindingSet.addBinding(MutableBindingSet.java:30)
at
org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:67)
at
org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps.BindingSetAssignmentQueryEvaluationStep$1.getNextElement(BindingSetAssignmentQueryEvaluationStep.java:47)
at
org.eclipse.rdf4j.common.iteration.LookAheadIteration.lookAhead(LookAheadIteration.java:80)
...
I am getting the same error, can we maybe consider reverting this element
in getNextElement
https://github.com/eclipse/rdf4j/blob/b11b4a5061a9313d7a777edca3a9c471a15508e8/core/queryalgebra/evaluation/src/main/java/org/eclipse/rdf4j/query/algebra/evaluation/iterator/HashJoinIteration.java#L161
to how it was in 3.7.7
https://github.com/eclipse/rdf4j/blob/b11b4a5061a9313d7a777edca3a9c471a15508e8/core/queryalgebra/evaluation/src/main/java/org/eclipse/rdf4j/query/algebra/evaluation/iterator/HashJoinIteration.java#L161
?
—
Reply to this email directly, view it on GitHub
https://github.com/eclipse/rdf4j/pull/4670#issuecomment-1644073981, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAHQYFJN3JGIGPEOYZJCOR3XRFBBRANCNFSM6AAAAAA2EGKZVY
.
You are receiving this because you were mentioned.Message ID:
@.***>

@vallerap is this from the same query? because it mentions a binding asil, but I don't see any such variable in the example query.


Better handle missing gcloud binary

Hello, I've seen that this plugin throws an error if gcloud is not available:
➤ YN0001: │ @private-scope/my-package@npm:2.1.1: Process gcloud failed to spawn
➤ YN0001: │   Thrown Error: spawn gcloud ENOENT

This made sense to me at first because it indicates what is needed for yarn install to succeed.
However I've found that this error breaks Dependabot. I tested this by patching the plugin to handle the spawn failure and return null instead of throwing. Then Dependabot was able to create a PR for the private package again.
The downside of my patch is that there's no longer an indication of why auth didn't work if you have a laptop without gcloud:
➤ YN0041: │ @private-scope/my-package@npm:2.1.1: Invalid authentication (as an anonymous user)

I suspect that a warning could be logged instead, so humans can install gcloud while dependabot can continue on.
Let me know if I could provide any further details.

So if I understand this correctly, dependabot breaks while trying to fetch info on your private package, right?
I'm not super happy about swallowing error messages. Have you tried setting the ACCESS_TOKEN env var? It should have the same effect if you provide a dummy value. Here's an article with more info
Lemme know if it works or if you find a better way - could be readme-worthy :)

Actually, scratch that, it seems like dependabot doesn't support custom environmental variables like that. The article I linked only describes using GitHub secrets.
I'm not sure how this can be fixed otherwise, without swallowing an error that is. I don't really use dependabot much.

So I have Dependabot properly authenticated to my registry already with YAML like this:
registries:
    google-artifact-registry:
        type: npm-registry
        url: https://europe-west1-npm.pkg.dev/my-project/npm-virtual/
        username: _json_key_base64
        password: '${{ secrets.GCP_SERVICE_ACCOUNT_KEY_BASE64 }}'

version: 2
updates:
    - package-ecosystem: npm
      directory: '/'
      registries:
          - google-artifact-registry
      # [.. more config ..]

The problem seems to be that when using Yarn Berry with this plugin, Dependabot's attempts to update the lockfile by running yarn result in a plugin error and thus no PR is created. I'm not actually sure how Dependabot configures Yarn but it does manage it.
I also agree that swallowing the error is bad. I don't know much about Yarn Berry but maybe there's a way to log a proper warning when gcloud isn't available? Then the wording can be improved, without throwing a plugin error.


Setup guide mentions 1.18.3 but this version not in central

Searching maven central, I don't find 1.18.3.
https://search.maven.org/search?q=g:org.projectlombok AND a:lombok&core=gav
Currently, setup guide mentions this version
https://projectlombok.org/setup/gradle

Traditionally, lombok release versions never ends in an odd number (not that I personally agree with that, but anyway, that is how it is today). It probably should be 1.18.2. The version 1.18.3 probably refers to the current edge version.

That is correct, we accidentally used the edge version on the website.

Yeah the site's been saying that since monday evening, my bad, published the edge variant of the website. Fixed.


fix: print offset should have mem

Hey, thanks a lot! Sorry it took me a bit longer than expected to get back to this


Haiku OS Port of VSCode

I would like to see the Port of Visual Studio Code to Haiku OS 64bit.
Not sure how much work would it be, but I presume it would not be that hard as there are already ports for OSX and Linux. If I had the skills I would try to do it myself, with prior consent from the developers, of course.
Thank you very much for taking your time in reading this "Feature request".
Regards,
Roired

@roired You need to champion for a port of Electron to Haiku OS before it is possible.

@dotnetCarpenter Thanks. I had no idea on what Electron was before. That proves that my skills are close to none... XD
I will look into that Electron thing. Step by step.
Regards,
Roired

Feel free to follow this up in electron


style: chat-summary-webapp-react - change label for deployment form input from Model to Deployment

Motivation and Context
There are different sets of parameters when using OpenAI vs Azure OpenAI
OpenAI

OpenAI Key
Model (text-davinci-003)

Azure OpenAI
You can deploy multiple versions of the same model (gpt-3.5-turbo) with different resource throughput. This is why "model" is not unique enough. Instead of Model you specify Deployment and Endpoint

OpenAI Key
Deployment
Endpoint

The samples\apps\chat-summary-webapp-react it was using Model term which may be misleading
Description

samples\apps\chat-summary-webapp-react

Change label for Deployment form input from Model to Deployment

Contribution Checklist

[ ] The code builds clean without any errors or warnings
[ ] The PR follows SK Contribution Guidelines (https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
[ ] The code follows the .NET coding conventions (https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) verified with dotnet format
[ ] All unit tests pass, and I have added new tests where possible
[ ] I didn't break anyone :smile:

@lemillermicrosoft I think we can merge this one, although I'm not sure why Spell Check is failing specifically in this PR.

I'm not sure why Spell Check is failing specifically in this PR.

Yea, I'm not sure how that code was merged in before if the check fails.
I see
error: `Inteference` should be `Interference`
  --> ./samples/apps/hugging-face-http-server/README.md:1:28
  |
1 | # Local Hugging Face Model Inteference Server

I updated to also fix the typo since it was another simple string change


GitLab Mirroring failing on push

Prerequisites

[x] I've searched for existing issues

Describe the bug
GitLab mirroring is failing. For example ( https://github.com/accessibility-exchange/platform/actions/runs/5180730218/jobs/9335290595 ).
Run ssh-keyscan git.kube.v1.colab.coop >> ~/.ssh/known_hosts
# git.kube.v1.colab.coop:22 SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u1
# git.kube.v1.colab.coop:22 SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u1
# git.kube.v1.colab.coop:22 SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u1
# git.kube.v1.colab.coop:22 SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u1
# git.kube.v1.colab.coop:22 SSH-2.0-OpenSSH_8.4p1 Debian-5+deb11u1
error: atomic push failed for ref refs/heads/development. status: 5

fatal: the remote end hung up unexpectedly
remote:
remote: ========================================================================
remote:
remote: rpc error: code = Canceled desc = user canceled the push
remote:
remote: ========================================================================
remote:
To git.kube.v1.colab.coop:iris/iris-accessibility.git
 ! [rejected]        dev -> development (fetch first)
error: failed to push some refs to 'git.kube.v1.colab.coop:iris/iris-accessibility.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

While the error mentions that the remote contains changes that aren't included in dev. Local checking with git log does not indicate any difference. There may be some merge commits as the current development branch in GitLab has merge commits from dev instead of being exactly the same.
Another theory is that the issue is related to the atomic commits currently being used, and potentially GitLab not supporting those.

I was able to run git push --atomic kube development locally. This worked without any errors. After that build completed, I re-ran the most recent failed mirroring task from GitHub and that also passed. So it could be that we now have things in sync, or maybe something is different when there are no updates.

New changes have also failed to push to GitLab.
https://github.com/accessibility-exchange/platform/actions/runs/5181498420/jobs/9337086236


Configure heap size for running mn2pdf Java

... to preempt crashing when I run rspec, because of running out of memory

Changing the stack size of mn2pdf does not seem to be reducing the impact of rspec.

Using system instead of Open3.capture3 does not seem to make a difference either. Can't resolve.


binfinder fails to run

➜  binfinder git:(master) ✗ ./binfinder --images    alpine:3.10.1
2020/09/01 15:13:43 topN value is 0, running binfinder on images passed by --images flag
Pulling image: alpine:3.10.1...
2020/09/01 15:13:44 exit status 1
➜  binfinder git:(master) ✗ echo $?
1
➜  binfinder git:(master) ✗ ./binfinder --images    alpine:3.10
2020/09/01 15:13:54 topN value is 0, running binfinder on images passed by --images flag
Pulling image: alpine:3.10...
2020/09/01 15:13:55 exit status 1

What am I doing wrong?

Ah – it looks like it needs docker daemon to be up and running. Let's do the following:

Document this behaviour in the README
Handle it gracefully. Show a message to the user telling them they need docker daemon running before they can run binfinder.
Add a test for this use case.

@simar7 Updated Readme added test case and logging the error for the user to see if docker daemon running or not.
https://github.com/aquasecurity/binfinder
You can close this issue.
Thanks

lgtm


Add open source tools and tutorials

Added a bunch of tools and tutorials mostly coming from Chainstack

Added a bunch of tools and tutorials mostly coming from Chainstack

@akegaviar cool, I'm eager to check it out.


Better Message headers and chat header

[x] Stream text color becomes white or black depending on background
[ ] Private chat or group chat - do not show message headers, title is name(s) (and maybe avatars)
[ ] Stream - subheaders show only topic, title is stream, has color, has 'private' or not
[ ] Stream+Topic - no message headers, title is stream + topic
[ ] Aggregate (Home/Search etc) - show stream + topic in message headers or private message header, title lists search criteria

For group private message threads, the title area should just show the users' avatars (that's probably the only thing that would fit with 3+ other people).  If you touch the avatars in the title area, it should pop down a list of the people/avatar pairs so you can easily get precise clarity as to who is on the thread.


Bump httpclient to the latest version

The current version is really old and conflicts with the AWS SDK

Thanks a lot @justinwyer


chore: update CI config in release-5.3

What is changed, added, or deleted? (Required)
Update CI config in release-5.3
@Liuxiaozhen12 Please DO NOT merge this PR unless @YiniXu9506 allows you to do so.

Which DM version(s) do your changes apply to? (Required)

[ ] master (the latest development version)
[x] v5.3 (TiDB DM 5.3 versions)
[ ] v2.0 (TiDB DM 2.0 versions)
[ ] v1.0 (TiDB DM 1.0 versions)

What is the related PR or file link(s)?

This PR is translated from:
Other reference link(s):

Do your changes match any of the following descriptions?

[ ] Delete files
[ ] Change aliases
[ ] Need modification after applied to another branch
[ ] Might cause conflicts after applied to another branch

/merge


Simplified the functions, where I expected a different result.
trigger OnOpenPage()
var
    MessageLbl: Label 'The formatted value of ''%1'' is ''%2''.';
begin
    Message(StrSubstNo(MessageLbl, WorkDate(), Format(WorkDate(), 9)));
end;

Result
Value of pop-up message

Expected
The formatted value of '21/11/22' is '2022-11-21'.

Outcome
The formatted value of '21/11/22' is ' 21/11/22'.

trigger OnOpenPage()
var
    MessageLbl: Label 'The formatted value of ''%1'' is ''%2''.';
    myDecimal: Decimal;
begin
    myDecimal := 1234.56;
    Message(StrSubstNo(MessageLbl, myDecimal, Format(myDecimal, 9)));
end;

Result
Value of pop-up message

Expected
The formatted value of '1.234,56' is '1234.56'.

Result
The formatted value of '1.234,56' is ' 1.234,56'.

(I've noticed also that in both cases a space is added before the value)
version: BE Business Central 21.1
application: 21.1.48363.48789
platform: 21.0.48357.49378

The way Format() works is a platform/AL issue, to some extent (since it is the content of a message) maybe a client issue, but not a System app issue. Hence, this is definitely the wrong repository.
You could try to move it to https://github.com/Microsoft/AL/issues instead, but no guarantee that it will be accepted there.

@NKarolak, you're probably right!
I'm also convinced that it's the Format() function causing this problem. The message here is to simplify the issue.
It seems I can't transfer this issue. I'll wait the response here, hoping that this issue will be transferred or otherwise I'll create a new issue on the right repository.

We cannot process non extensibility related bugs here, the only way to get it fixed is to report vis technical support. I can transfer this one to AL (platform area) but without any promises it will be considered or fixed.


Responsive issues on mobile devices while loading big amount of data to SlickGrid

Hey guys!
I created a grouped slickgrid for reports, so I had to skip pagination. I am loading 8k records, grouped by 3 columns and I have 2 aggregate columns with summing values.
Although, when I use chrome's tool to resize my browser to a mobile device, it appears that loading time is greatly increased to about 20 sec
I believe, it is related to CSS resizing somehow.
Can you advise?
Thanks!

@volkanceylan
Hey Volkanceylan, can you advise please? it seems rather painful for mobile devices to display such a number of data. Shall I consider filtering the number of data, or is there anything that might get fixed with auto-resizing feature?
Thanks

Collapsing everything by default on load fixed the issue.
Feel free to close it you like

@lechu90ns ,
thanks for sharing. Please close your issue yourself as only you and Volkan can do it :-)
With kind regards,
John

sure thing! Closing


Simplify web project templates

We should remove the CDN config as well as environment-based CSS/javascript references from web templates

I can grab this one

Should we remove the CDN tests as well in Templates.Test?
https://github.com/aspnet/AspNetCore/blob/master/src/ProjectTemplates/test/CdnScriptTagTests.cs


test: Remove e2e graceful termination test cases

The commit 108c4595d ("test/control-plane: Add graceful termination
test") implemented the graceful termination tests in a form of the
control plane integration tests. Therefore, we can remove the e2e ginkgo
tests.

/test

Should we backport this to v1.12? We are hitting the flake from this test on that branch as well.

Should we backport this to v1.12? We are hitting the flake from this test on that branch as well.

Control plane tests are not backported to 1.12, are they?

Noup, they are not backported. I think it's safe to backport them. cc @aanm and @joamaki for opinions.


Creating open roadmap for project

This would be a useful reference for anybody new coming in to see what we're expecting to achieve from this project.
What would be the best form for this? There are some useful links on this HackMD: https://hackmd.io/LmVPzQf_SrmtRoHlDW9kRg

Just leaving some suggestions for the roadmap:

Establish communication channels / presence for SATRE (Medium blog? GitHub Website, rse-tre Slack)
Establish Collaboration Cafes and Sprint days
Translate first survey session results into Issues
Merge PRs from survey Issues into main
Decide on Documentation format i.e. JupyterBook, ReadTheDocs, Quarto
Funding Report to DARE UK

@harisood @arronlacey is this done?

😬


docs: update description what this library is

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.0%) to 0.528%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9900

Relevant Lines:
1874282

💛  - Coveralls


Add the CompatHelper workflow to this example repo?

I think the CompatHelper github workflow is important for packages that are setting [compat] bounds (which should be all packages, these days).
https://github.com/JuliaRegistries/CompatHelper.jl
Can we add the suggested CompatHelper workflow file to this repo?
CC: @DilumAluthge

Seems reasonable to me.

Thanks @DilumAluthge. Opened https://github.com/JuliaLang/Example.jl/pull/66 for this


Calculation of v_max in stabilizing ring environments outputs negative results

In the stabilizing ring experiments, if you fix the ring radius to be 230, the output max speed is -1.7. This doesn't seem correct?

@eugenevinitsky May I ask why to set the ring radius between 210 and 270 in the stabilizing_the_ring.py instead of a fixed value? And usually how long does it takes to run the code to terminate in a PC? Because I have ran it for 4 hrs but it hasn't ended.