getsentry / sentry-unity

Development of Sentry SDK for Unity
https://docs.sentry.io/platforms/unity/
MIT License
209 stars 52 forks source link

[libGLES_mali.so] crash #1825

Open Yauheni777 opened 1 month ago

Yauheni777 commented 1 month ago

Hello!

Input data:

We installed sentry as a unity package: https://github.com/getsentry/sentry-unity/releases/tag/2.1.15 On server Sentry SaaS (sentry.io) SDK version - 2.1.15 Installed via git url Unity version 2022.3.35f1 Problem reproduces only in 14 android google pixel devices:

We couldn't reproduce the problem manually, we only know that the problem is in sentry. We released 2 absolutely identical versions, one with sentry removed, the other without. In the version with sentry we get a gles crash: Image

This is what crash looks like on google play console:

[libGLES_mali.so] hal::halp::device_faults_handler_internal::record_internal(hal::device_fault_type, unsigned long, short, hal::device_fault_mem_access_type, unsigned long, unsigned long, short, unsigned short)

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 27037 >>> net.supertreat.solitaire <<<

backtrace:
  #00  pc 0x0000000000070548  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+24)
  #01  pc 0x0000000001864abc  /vendor/lib64/egl/libGLES_mali.so (hal::halp::device_faults_handler_internal::record_internal(hal::device_fault_type, unsigned long, short, hal::device_fault_mem_access_type, unsigned long, unsigned long, short, unsigned short)+60)
  #02  pc 0x0000000001864c3c  /vendor/lib64/egl/libGLES_mali.so (hal::halp::device_faults_handler_internal::record(short, hal::device_fault_type, unsigned int)+60)
  #03  pc 0x00000000018a9f94  /vendor/lib64/egl/libGLES_mali.so (hal::halp::signal_fence_cb(void*, bool)+100)
  #04  pc 0x00000000018fd48c  /vendor/lib64/egl/libGLES_mali.so (basep_cpu_queue_process+396)
  #05  pc 0x00000000018fb9d0  /vendor/lib64/egl/libGLES_mali.so (basep_process_command_queues+192)
  #06  pc 0x00000000018f9bdc  /vendor/lib64/egl/libGLES_mali.so (basep_event_thread+236)
  #07  pc 0x000000000006efbc  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+204)
  #08  pc 0x0000000000060d60  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

This is what crash looks like on sentry Image Image Image Image Image

It is possible that the crash may be related to the fact that the Sentry SDK uses Android View, which in turn is used with GLES: https://github.com/getsentry/sentry-java/blob/main/sentry-android-core/src/main/java/io/sentry/android/core/ViewHierarchyEventProcessor.java

This crash is a critical issue for us

┆Issue is synchronized with this Jira Improvement by Unito

bitsandfoxes commented 4 weeks ago

Hey @Yauheni777, so sorry to see you run into issues. We'll do whatever we can to get this resolved as fast as possible. Are you able to reproduce this issue in any way, shape or form? Can you disabled the Android Native Support? Just so we can eliminate where this is originating from?

bruno-garcia commented 1 day ago

Looking online for crashes on libGLES_mali.so I spotted this on the Flutter repo:

https://github.com/flutter/flutter/issues/117950#issuecomment-1493500543 from 2023:

this issue is not actionable without a code sample or repro instructions, and the device. In general, crash logs from a crash reporting service are not sufficient for the team to be able to solve a problem. This is especially true when the crash is in the device driver. Since this issue has been open for a few months without any repro instructions, I'm going to go ahead and close it.

And this is from Unity from May 2024:

Testing confirms this issue only exists on Pixel 6 devices using the Mali r46 driver which is reported to be buggy. Later updates using the Mali r47 driver fixes the issue and ARM has indicated this is being discussed with the OEM (https://community.arm.com/support-forums/f/graphics-gaming-and-vr-forum/56325/mali-g78-google-pixel-6-vulkan-crash-in-cmarp_backend_thread).

Doesn't seem to be much we (Sentry) can do about this from looking online, it's not caused by Sentry directly. We could ignore these errors but I feel having no visibility is even worse than something that we can't do anything about