-
Notifications
You must be signed in to change notification settings - Fork 452
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault RNSkia::RNSkOpenGLCanvasProvider::surfaceSizeChanged
#2396
Comments
This is interesting. There might be a bug on our side. If cannot find anything obvious, would it be possible to review the app code privately? I would like to check which APIs are used and how they are being used. Do you have anything exotic there? |
Yes, we'd appreciate that! I send you a message on slack, thanks @wcandillon We are not doing anything crazy, mostly just using the declarative react API. |
same here
|
StressTest.zip (cc @Nodonisko who's might interesting about this whole issue). Above is a sample that I used stress test the Skia surfaces on Android but couldn't reproduce the error even under very harsh conditions. I'm sharing this because maybe you can play with it and find a way to reproduce the error. That being said, the first error reported seems to be that surfaceSizeChanged can be invoked after surfaceDestroyed is invoked. How why does this error happens in the first place? I only have a vague sense of it. We have complexified the surface lifecycle logic in order to have a fast first time to frame and still supporting react-native-screens. I suggest the following:
Let me know your thoughts on this. |
@wcandillon I will try to run that stress components you provided and see if I will be able to crash that. We can probably ship special version of Skia to test it, only problem is that right now we are on min SDK 28. I guess we can go to 29 but we need to discuss it. |
min sdk 29 would only be for a specific use-case, we could discuss it, see what's the best plan of action is. |
Sure, let's do it! |
@wcandillon We've rolled out version 1.3.6 to our users and the issue still persists: |
@hannojg @Nodonisko I believe to have found a path to a race condition where this error could happen. I will provide a test version for it. However, like for #2481, I am unable to reproduce the error myself (but we did fix the error there for instance). @Nodonisko your finding that this is related to navigation screen was very helpful. I wrote the following stress test to try to reproduce the crash (unsuccessfully but maybe you have more insights into this):
|
@wcandillon That's very similar code I used, but I was very little successful too with reproducing crash. |
Since you're trying to tackle this problem, I would just like to add information I have for it:
Hope this helps! |
This seems to be fixed for us in the 1.3.7 version 🎊 🎉 |
Description
We are seeing crashes in sentry from react-native-skia on android.
We are also seeing another stack around, which is maybe related:
Version
1.2.3
Steps to reproduce
Sorry, this is where it gets vague 🙇
We can't reproduce the crash on our phones.
All we know is that the crash happens when we navigate away from a screen where we render a rnskia surface.
Note: we see the crash happening also on earlier versions of skia. It was first reported to us in sentry on rnskia version:
1.0.4
Snack, code example, screenshot, or link to a repository
The stack is unfortunately not very long, I understand that a full reproduction is needed to help address that quickly. I just wanted to share the stack here, maybe you know from looking at the stack what could cause the crash?
The text was updated successfully, but these errors were encountered: