react-native-skia icon indicating copy to clipboard operation
react-native-skia copied to clipboard

SIGSEGV 0x0000000000002170 in librnskia.so

Open hirvesh opened this issue 2 months ago • 25 comments

Description

Hello @wcandillon!

I am getting the following error in the latest version of react-native-skia (2.3.13):

          null pointer dereference: SIGSEGV  0x0000000000000620
#00 pc 0x3e3fe0 librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#01 pc 0x3e3c5c librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#02 pc 0x35dbfc librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#03 pc 0x21a84c librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#04 pc 0x223704 librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#05 pc 0x21a55c librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#06 pc 0x2193c8 librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#07 pc 0x21c354 librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#08 pc 0x21c26c librnskia.so (BuildId: 963d6248afe70dda87e4700d19c46b593de0f13f)
#09 pc 0x732ad4cc
        

Wasn't happening on my previous version before I bumped to latest: 2.2.19

React Native Skia Version

2.3.13

React Native Version

0.79.5

Using New Architecture

  • [x] Enabled

Steps to Reproduce

N/A, randomly across different devices.

Snack, Code Example, Screenshot, or Link to Repository

N/A

hirvesh avatar Nov 24 '25 09:11 hirvesh

do you have the crash with 2.4.13? if yes can you provide a reproduction?

wcandillon avatar Nov 24 '25 10:11 wcandillon

Unfortunately seems very random - I haven't been able to reproduce it on my devices, but I have like 5 occurrences since I pushed it out with 2.3.13

Only have crashlytics logs...

hirvesh avatar Nov 24 '25 10:11 hirvesh

do you mean 2.3.13 or 2.4.13?

wcandillon avatar Nov 24 '25 10:11 wcandillon

I just doubled checked - https://github.com/Shopify/react-native-skia/releases/tag/v2.3.14

This is the version i have in production right now and which is causing the error.

https://github.com/user-attachments/assets/18bc217a-a325-4c70-98cf-92742b936a0f

hirvesh avatar Nov 24 '25 10:11 hirvesh

my apologies I got confused, can you update to v2.4.3 see if it fixes the issue? do you have more details on the stack trace? if we know where the null pointer exception happens that would be very useful.

wcandillon avatar Nov 24 '25 10:11 wcandillon

I've just sent 2.4.3 to production - will report back if it still occurs! Unfortunately the stack trace I have on Crashlytics is limited to only what I provided above...

Let's see if it reproduces with the latest version. I will report back :)

Thanks William!

hirvesh avatar Nov 24 '25 10:11 hirvesh

for which version are you positive this crash doesn't happen? that might help to pin point the issue.

wcandillon avatar Nov 24 '25 10:11 wcandillon

Before 2.3.14, I had 2.2.19 in production and that didn't have the issue for sure. So something between these two versions likely...I upgraded because of the perf improvements I saw on Android :)

hirvesh avatar Nov 24 '25 10:11 hirvesh

@wcandillon - happened again with 2.4.3 - I will rollback to last working version - no idea what's causing it...

hirvesh avatar Nov 24 '25 15:11 hirvesh

We are also experiencing this crash across several different types of Android devices in our production app:

Image

One thing to note which I have not seen reported as an issue yet is that several of our developers have been experiencing TLS errors when attempting to install this package. Not sure if it's related but I thought I would mention it. We're currently using version 2.3.12 in production but we also were getting errors with 2.1.0.

We use Bitrise as our CI/CD platform and our build generated this error this morning:

Image

And here's another example of yarn error I experienced locally last week:

Image

We've been temporarily able to circumnavigate these installation errors by setting export NODE_TLS_REJECT_UNAUTHORIZED=0 in our local shells. I figured it was related to the way our company devices are configured but now that I'm also seeing something similar on an external build platform, I'm wondering if there's something else going on.

kwoodward-1 avatar Nov 24 '25 16:11 kwoodward-1

@kwoodward-1 thanks for the report, any stack trace available? That would be extremely useful. About the networking errors when downloading the pre-built binaries, we understand it's a pain point. We're not sure yet at this point how to improve this process. I will check how React Native ships the iOS prebuilt binaries and try to align the best practices there.

wcandillon avatar Nov 25 '25 07:11 wcandillon

we as well see massive increase in android crashrate currently with segfaults. I just released a new version with rnskia v2.4.3, upped from v2.3.10 where the crashes started to occur for us.

@wcandillon got this out from sentry and play console

SIGSEGV: Segfault
  split_config.arm64_v8a.apk0x7129734ee4 RNSkia::Recorder::play
  split_config.arm64_v8a.apk0x712970d5c0 RNSkia::JsiRecorder::play
  split_config.arm64_v8a.apk0x713d105058 null
  split_config.arm64_v8a.apk0x713d105058 null
  split_config.arm64_v8a.apk0x71c4740a24 null
  split_config.arm64_v8a.apk0x71c4740760 null
  split_config.arm64_v8a.apk0x71c4748cd8 null
  split_config.arm64_v8a.apk0x71c475b0c8 null
  split_config.arm64_v8a.apk0x71c475aa28 null
  split_config.arm64_v8a.apk0x71c4748d90 null
  split_config.arm64_v8a.apk0x71c4748918 null
  split_config.arm64_v8a.apk0x71c475b0e4 null
  split_config.arm64_v8a.apk0x71c475aa28 null
  split_config.arm64_v8a.apk0x71c4748d90 null
  split_config.arm64_v8a.apk0x71c4748918 null
  split_config.arm64_v8a.apk0x71c47c0220 null
  split_config.arm64_v8a.apk0x71c4748cd8 null
  split_config.arm64_v8a.apk0x71c4761530 null
  split_config.arm64_v8a.apk0x71c475b20c null
  split_config.arm64_v8a.apk0x71c475aa28 null
  split_config.arm64_v8a.apk0x71c4748d90 null
  split_config.arm64_v8a.apk0x71c47475e4 null
  split_config.arm64_v8a.apk0x71c47a2464 null
  split_config.arm64_v8a.apk0x71c4748cd8 null
  split_config.arm64_v8a.apk0x71c475b0c8 null
  split_config.arm64_v8a.apk0x71c475aa28 null
  split_config.arm64_v8a.apk0x71c4748d90 null
  split_config.arm64_v8a.apk0x71c4748918 null
  split_config.arm64_v8a.apk0x71c47399a8 null
  split_config.arm64_v8a.apk0x713d10a628 facebook::jsi::WithRuntimeDecorator<T>::call
  split_config.arm64_v8a.apk0x713d0cd544 worklets::runOnRuntimeGuarded<T>
  split_config.arm64_v8a.apk0x713d0cd378 worklets::scheduleOnUI::lambda::operator()
  split_config.arm64_v8a.apk0x713d0ee5dc worklets::UIScheduler::triggerUI
  split_config.arm64_v8a.apk0x713d119db4 facebook::jni::detail::MethodWrapper<T>::dispatch
  split_config.arm64_v8a.apk0x713d119cf4 facebook::jni::detail::FunctionWrapper<T>::call
  base.odex           0x71dfee22d4 null
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 23047 >>> com.ferroamp.userapp <<<

backtrace:
  #00  pc 0x00000000002e8ee4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!librnskia.so (RNSkia::Recorder::play(RNSkia::DrawingCtx*)+132) (BuildId: d72a1e118ee5fbbf0fbe507768f0fedeb6487ffd)
  #01  pc 0x00000000002c15c0  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!librnskia.so (RNSkia::JsiRecorder::play(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)+188) (BuildId: d72a1e118ee5fbbf0fbe507768f0fedeb6487ffd)
  #02  pc 0x00000000000ac058  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (std::__ndk1::__function::__func<facebook::jsi::DecoratedHostFunction, std::__ndk1::allocator<facebook::jsi::DecoratedHostFunction>, facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&)+33456128) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #03  pc 0x00000000000ac058  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (std::__ndk1::__function::__func<facebook::jsi::DecoratedHostFunction, std::__ndk1::allocator<facebook::jsi::DecoratedHostFunction>, facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&)+33456128) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #04  pc 0x00000000000aaa24  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #05  pc 0x00000000000aa760  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #06  pc 0x00000000000b2cd8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #07  pc 0x00000000000c50c8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #08  pc 0x00000000000c4a28  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #09  pc 0x00000000000b2d90  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #10  pc 0x00000000000b2918  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #11  pc 0x00000000000c50e4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #12  pc 0x00000000000c4a28  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #13  pc 0x00000000000b2d90  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #14  pc 0x00000000000b2918  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #15  pc 0x000000000012a220  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #16  pc 0x00000000000b2cd8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #17  pc 0x00000000000cb530  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #18  pc 0x00000000000c520c  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #19  pc 0x00000000000c4a28  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #20  pc 0x00000000000b2d90  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #21  pc 0x00000000000b15e4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #22  pc 0x000000000010c464  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #23  pc 0x00000000000b2cd8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #24  pc 0x00000000000c50c8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #25  pc 0x00000000000c4a28  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #26  pc 0x00000000000b2d90  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #27  pc 0x00000000000b2918  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #28  pc 0x00000000000a39a8  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libhermes.so (BuildId: 3742cb807f54bf165f89bd93a20345afc069184d)
  #29  pc 0x00000000000b1628  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (facebook::jsi::WithRuntimeDecorator<worklets::AroundLock, facebook::jsi::Runtime, facebook::jsi::Runtime>::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)+108) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #30  pc 0x0000000000074544  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (facebook::jsi::Value worklets::runOnRuntimeGuarded<>(facebook::jsi::Runtime&, facebook::jsi::Value const&)+108) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #31  pc 0x0000000000074378  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (worklets::scheduleOnUI(std::__ndk1::shared_ptr<worklets::UIScheduler> const&, std::__ndk1::weak_ptr<worklets::WorkletRuntime> const&, facebook::jsi::Runtime&, facebook::jsi::Value const&)::'lambda'()::operator()() const+140) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #32  pc 0x00000000000955dc  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (worklets::UIScheduler::triggerUI()+132) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #33  pc 0x00000000000c0db4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (facebook::jni::detail::MethodWrapper<void (worklets::AndroidUIScheduler::*)(), &worklets::AndroidUIScheduler::triggerUI(), worklets::AndroidUIScheduler, void>::dispatch(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<worklets::AndroidUIScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>)+72) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #34  pc 0x00000000000c0cf4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/split_config.arm64_v8a.apk!libworklets.so (facebook::jni::detail::FunctionWrapper<void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<worklets::AndroidUIScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>), facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<worklets::AndroidUIScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*, void>::call(_JNIEnv*, _jobject*, void (*)(facebook::jni::alias_ref<facebook::jni::detail::JTypeFor<facebook::jni::HybridClass<worklets::AndroidUIScheduler, facebook::jni::detail::BaseHybridClass>::JavaPart, facebook::jni::JObject, void>::_javaobject*>))+60) (BuildId: 55030734fc2896b15c18abaa875ec9ca574bcd04)
  #35  pc 0x0000000000e108b0  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+112)
  #36  pc 0x000000000068a320  /apex/com.android.art/lib64/libart.so (nterp_helper+4016)
  #37  pc 0x0000000000332dba  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/base.apk (com.swmansion.worklets.AndroidUIScheduler.lambda$new$0+22)
  #38  pc 0x000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #39  pc 0x0000000000332d04  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/base.apk (com.swmansion.worklets.AndroidUIScheduler.$r8$lambda$Owjjhl033zNSHsU6ZfWQNbZEGbI)
  #40  pc 0x00000000006893a4  /apex/com.android.art/lib64/libart.so (nterp_helper+52)
  #41  pc 0x0000000000332c94  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/base.apk (com.swmansion.worklets.AndroidUIScheduler$$ExternalSyntheticLambda0.run+4)
  #42  pc 0x000000000068b0e4  /apex/com.android.art/lib64/libart.so (nterp_helper+7540)
  #43  pc 0x0000000000332cd4  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/base.apk (com.swmansion.worklets.AndroidUIScheduler$1.runGuarded+12)
  #44  pc 0x000000000068a2c4  /apex/com.android.art/lib64/libart.so (nterp_helper+3924)
  #45  pc 0x00000000002cc074  /data/app/~~Pl6hOQO5CNp8GbkCtIyLCg==/XXX==/base.apk (com.facebook.react.bridge.GuardedRunnable.run)
  #46  pc 0x0000000000981f9c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Handler.dispatchMessage+76)
  #47  pc 0x0000000000985d7c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loopOnce+1036)
  #48  pc 0x00000000009858c8  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.os.Looper.loop+1112)
  #49  pc 0x0000000000700030  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (android.app.ActivityThread.main+2304)
  #50  pc 0x0000000000317460  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
  #51  pc 0x0000000000311508  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+544)
  #52  pc 0x00000000005c82c8  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+32)
  #53  pc 0x0000000000e11a94  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+116)
  #54  pc 0x0000000000b65f54  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+132)
  #55  pc 0x0000000000b7073c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (com.android.internal.os.ZygoteInit.main+3324)
  #56  pc 0x0000000000317460  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+640)
  #57  pc 0x0000000000316100  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+800)
  #58  pc 0x0000000000639868  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+156)
  #59  pc 0x00000000000dfbe8  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+108)
  #60  pc 0x00000000000ec8cc  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+844)
  #61  pc 0x00000000000026a8  /system/bin/app_process64 (main+1616)
  #62  pc 0x0000000000053e48  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108)

albinhubsch avatar Nov 25 '25 08:11 albinhubsch

@albinhubsch this exact crash is fixed in 2.3.11

wcandillon avatar Nov 25 '25 12:11 wcandillon

We just updated to react-native-skia 2.4.5 and are seeing similar errors on Android devices in production. Unfortunately, I cannot reproduce it locally.

Example Stacktrace file.txt

https://github.com/user-attachments/assets/95a52581-537f-45e4-811a-350e853f53d6

christophby avatar Dec 03 '25 09:12 christophby

Thanks for the report and for providing the stack traces!

Unfortunately, these stack traces aren't symbolicated, so they only show memory addresses rather than actual function names. This makes it difficult to pinpoint the exact location of the crash. All three traces show crashes originating from librnskia.so (BuildId: 8e5479bc158a9c036a01e44e06a3a2fcaa371385), but without symbols we can't see which functions are involved.

To help debug this, could you:

  1. Provide symbolicated stack traces - You'll need to run these through ndk-stack or addr2line with your debug symbols. For example:

    ndk-stack -sym /path/to/your/build/symbols -dump stacktrace.txt
    
  2. Share any additional context:

    • What Android devices/OS versions are affected?
    • Is there a pattern to when these crashes occur (e.g., specific screens, animations, operations)?
    • Are you using any specific Skia features (shaders, images, text rendering, etc.)?
    • Any recent changes in your code that might correlate with when these started appearing?
  3. If possible, enable Sentry or Crashlytics - These services can automatically symbolicate crashes and provide more context about the crash state.

The good news is that crashes 2 and 3 appear identical (same address 0x3e2520), suggesting this might be a consistent issue rather than multiple separate bugs. Once we can see the actual function names, we should be able to track this down.

Let me know if you need any help with the symbolication process.

wcandillon avatar Dec 03 '25 11:12 wcandillon

@wcandillon thank you for the explanation. Here are some more detailed logs:

null pointer dereference: SIGSEGV  0x0000000000000050

#00 pc 0x3e8988 librnskia.so
    decltype ({parm#1}((SkRecords::NoOp)())) SkRecord::Record::visit<SkRecords::Draw&>(SkRecords::Draw&) const
    SkRecordDraw.cpp:?

#01 pc 0x3e8604 librnskia.so
    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
    SkRecordDraw.cpp:?

#02 pc 0x3625a4 librnskia.so
    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
    SkCanvas.cpp:?

  • OS: For us, it affects only Android devices.
  • OS Versions / Devices: Android Version or devices cannot be specified more detailed as the error occurs on multiple devices / os versions.
  • Skia features: We're using Circle, Group, Line, Path, SkPath, SkFont, Canvas, DashPathEffect, Text, LinearGradient, vec, Mask, Rect

christophby avatar Dec 03 '25 14:12 christophby

Nice, do you have more stack frames, ideally one that is in RN Skia but outside Skia? But this is already useful. Also is there a version for which you know this crash doesn't happen or not really?

On Wed, Dec 3, 2025 at 3:20 PM Christoph @.***> wrote:

@wcandillon thank you for the explanation. Here are some more detailed logs:

null pointer dereference: SIGSEGV 0x0000000000000050

#00 pc 0x3e8988 librnskia.so decltype ({parm#1}((SkRecords::NoOp)())) SkRecord::Record::visitSkRecords::Draw&(SkRecords::Draw&) const SkRecordDraw.cpp:?

#01 pc 0x3e8604 librnskia.so SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*) SkRecordDraw.cpp:?

#02 pc 0x3625a4 librnskia.so SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*) SkCanvas.cpp:?

OS: For us, it affects only Android devices. OS Versions / Devices: Android Version or devices cannot be specified more detailed as the error occurs on multiple devices / os versions. Skia features: We're using Circle, Group, Line, Path, SkPath, SkFont, Canvas, DashPathEffect, Text, LinearGradient, vec, Mask, Rect

— Reply to this email directly, view it on GitHub or unsubscribe. You are receiving this email because you were mentioned.

Triage notifications on the go with GitHub Mobile for iOS or Android.

wcandillon avatar Dec 03 '25 14:12 wcandillon

Unfortunately, I don't have more stack frames. We just updated to 2.4.5 because our previous version led to other issues, so I can't tell you versions where this didn't happen, sorry.

Thank you for taking care!

christophby avatar Dec 03 '25 14:12 christophby

I have found a deeper stack trace (Sentry doesn't provide such a deep stack strace):

stackstrace.txt

Image

christophby avatar Dec 03 '25 17:12 christophby

@christophby this is extremely useful, big thank you for this.

wcandillon avatar Dec 03 '25 18:12 wcandillon

@christophby Unfortunately I was not able to reproduce the crash, not even in release mode. That being said, #3588 does fix a serious race condition. I am still struggling to understand how it could happen when using <Canvas />. I assume you have reanimated installed right? I could see how the race condition could happen if Reanimated is not present but not if it is installed.

wcandillon avatar Dec 04 '25 06:12 wcandillon

@wcandillon yes, we're using

  • react-native-reanimated 4.1.2
  • react-native 0.81.5
  • @shopify/react-native-skia 2.4.5

christophby avatar Dec 04 '25 08:12 christophby

just published v2.4.7 can you tell me if you still have the issue there?

wcandillon avatar Dec 04 '25 08:12 wcandillon

Thanks! As we see this error on Production only, I'll tell you next week if it still occurs.

christophby avatar Dec 04 '25 09:12 christophby

@christophby - any news? Does 2.4.7 fix it? 👀

hirvesh avatar Dec 11 '25 06:12 hirvesh

Hundred of crashes with SIGSEGV and SIGABRT, sadly I don't know how to reproduce, tried many different approaches but nothing makes the app stable. Image

maxximee avatar Dec 12 '25 08:12 maxximee

Sorry for the late response. 2.4.7. seems to fix the issue for me! 🙌

Thank you @wcandillon 🎉

christophby avatar Dec 15 '25 10:12 christophby

That's fantastic, closing it now but let's keep coordinating if there are any other issues.

wcandillon avatar Dec 15 '25 14:12 wcandillon