Hi guys new to iOS dev here and encountered a strange crash that hope you guys can help with.
Background:
The app is built using React-Native, with the @fkyskywhy/react-native-gcanvas library. Main logic was to draw images on a canvas via WebGL API (provided by gcanvas)
Issue Symptoms:
When testing the app on an actual device via TestFlight, it usually crashes the app upon launch, and randomly thereafter.
After repeated testing I was able to recreate the crash when debugging on actual device by repeatedly tapping the screen.
When testing the app on in simulator, I could not reproduce the crash at all. Also if the device is hooked up to the MacBook while testing, I also couldn't reproduce the crash the same way.
When it crashed, this is what I could gather from the crash log:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Codes: 0x0000000000000001, 0x0000000000000000
VM Region Info: 0 is not in any region. Bytes before following region: 4299587584
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 100468000-10119c000 [ 13.2M] r-x/r-x SM=COW ...pp/mobileGame
Termination Reason: SIGNAL 11 Segmentation fault: 11
Terminating Process: exc handler [16911]
Triggered by Thread: 9
Every time it crashes, it would be trigger by a different thread, I assume is based on how the cpu schedules it. In this particular case, the stack of thread 9 are as below:
Thread 9 name: Dispatch queue: OpenGLMT
Thread 9 Crashed:
0 ??? 0x0 ???
1 libdispatch.dylib 0x1c5a05eac _dispatch_client_callout + 20
2 libdispatch.dylib 0x1c5a0d534 _dispatch_lane_serial_drain + 668
3 libdispatch.dylib 0x1c5a0e0a4 _dispatch_lane_invoke + 384
4 libdispatch.dylib 0x1c5a18cdc _dispatch_workloop_worker_thread + 648
5 libsystem_pthread.dylib 0x21dec7ddc _pthread_wqthread + 288
6 libsystem_pthread.dylib 0x21dec7b7c start_wqthread + 8
Note: I noticed that the stack looked the same across all my crashes. However, I don't see any link to my code here so not sure how to start troubleshooting this issue.
Any help is much appreciated!