software-mansion / react-native-screens

Native navigation primitives for your React Native app.
https://docs.swmansion.com/react-native-screens/
MIT License
3.01k stars 511 forks source link

Use FirebaseRecaptcha with animation enabled crashes the application #1494

Open adelbeke opened 2 years ago

adelbeke commented 2 years ago

Description

From an issue in react-navigation repo

Today, when we have a FirebaseRecaptcha inside the navigator with navigationEnabled to true the app crashes with this following error.

Steps To Reproduce

  1. Create a project with expo & react-navigation with react-native-screens
  2. Add FirebaseRecaptcha
  3. Crash your app :)

Expected behavior

Beeing able to use the firebase recaptcha without crash.

Actual behavior

The app crashes on Android with FirebaseRecaptcha

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***

Build fingerprint: 'samsung/starltexx/starlte:10/QP1A.190711.020/G960FXXUHFVB4:user/release-keys'
Revision: '26'
ABI: 'arm64'
Timestamp: 2022-06-23 16:30:39+0200
pid: 5081, tid: 5173, name: RenderThread  >>> com.smartness.ko.app <<<
uid: 10306
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20
Cause: null pointer dereference
    x0  0000000000000000  x1  0000007a53a38638  x2  0000000000000002  x3  0000007941bd4e28
    x4  0000007941bd24d4  x5  0000007941bd24d8  x6  0000007941bd24dc  x7  0000007941bd2500
    x8  0000000000000000  x9  0000000000000000  x10 0000000000000000  x11 0000007a56556720
    x12 0000000000000065  x13 0000000000000000  x14 0000000000000000  x15 0000000000000000
    x16 0000007a53e21c80  x17 0000007a539e0ae0  x18 000000794187e000  x19 0000000000000000
    x20 00000078d4241c08  x21 0000000000000000  x22 0000000000000000  x23 0000000000000000
    x24 0000007941bd4eb0  x25 0000007941bde020  x26 0000000000000000  x27 0000000000000000
    x28 0000000000000000  x29 0000007941bd4df0
    sp  0000007941bd4de0  lr  0000007a53944278  pc  0000007a539e0af0

backtrace:
      #00 pc 00000000003aeaf0  /system/lib64/libhwui.so (SkSurface::getCanvas()+16) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #01 pc 0000000000312274  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::GLFunctorDrawable::onDraw(SkCanvas*)+796) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #02 pc 000000000037951c  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+236) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #03 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #04 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #05 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #06 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #07 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #08 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #09 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #10 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #11 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #12 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #13 pc 0000000000375764  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::onDraw(SkCanvas*)+788) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #14 pc 00000000003794e0  /system/lib64/libhwui.so (SkCanvas::onDrawDrawable(SkDrawable*, SkMatrix const*)+176) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #15 pc 000000000037f67c  /system/lib64/libhwui.so (android::uirenderer::DisplayListData::draw(SkCanvas*) const+300) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #16 pc 000000000037f17c  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::RenderNodeDrawable::forceDraw(SkCanvas*)+484) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #17 pc 00000000003b134c  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderLayersImpl(android::uirenderer::LayerUpdateQueue const&, bool)+516) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #18 pc 00000000003ae5f0  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaPipeline::renderFrame(android::uirenderer::LayerUpdateQueue const&, SkRect const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode>>> const&, bool, android::uirenderer::Rect const&, sk_sp<SkSurface>, SkMatrix const&)+104) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #19 pc 00000000003ae254  /system/lib64/libhwui.so (android::uirenderer::skiapipeline::SkiaOpenGLPipeline::draw(android::uirenderer::renderthread::Frame const&, SkRect const&, SkRect const&, android::uirenderer::LightGeometry const&, android::uirenderer::LayerUpdateQueue*, android::uirenderer::Rect const&, bool, android::uirenderer::LightInfo const&, std::__1::vector<android::sp<android::uirenderer::RenderNode>, std::__1::allocator<android::sp<android::uirenderer::RenderNode>>> const&, android::uirenderer::FrameInfoVisualizer*)+388) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #20 pc 0000000000408848  /system/lib64/libhwui.so (android::uirenderer::renderthread::CanvasContext::draw()+704) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #21 pc 0000000000407900  /system/lib64/libhwui.so (_ZNSt3__110__function6__funcIZN7android10uirenderer12renderthread13DrawFrameTask11postAndWaitEvE3$_0NS_9allocatorIS6_EEFvvEEclEv$c303f2d2360db58ed70a2d0ac7ed911b+216) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #22 pc 0000000000416c3c  /system/lib64/libhwui.so (android::uirenderer::WorkQueue::process()+228) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #23 pc 0000000000416968  /system/lib64/libhwui.so (android::uirenderer::renderthread::RenderThread::threadLoop()+80) (BuildId: 2d1c042a94d6c71246f90fa7a4049c6b)
      #24 pc 000000000001380c  /system/lib64/libutils.so (android::Thread::_threadLoop(void*)+284) (BuildId: 4ad07d8bd57f4fc98fe8072b725d570a)
      #25 pc 00000000000e3b24  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36) (BuildId: 3f350ca06c3b80560f65755286daf320)
      #26 pc 0000000000085330  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64) (BuildId: 3f350ca06c3b80560f65755286daf320)

Reproduction

https://github.com/adscud/repro-android-crash-recaptcha-45

Platform

Workflow

Package versions

package version
react-native 0.68.2
@react-navigation/native-stack 6.6.2
react-native-screens 3.11.1
react-native-safe-area-context 4.2.4
react-native-gesture-handler 2.2.1
react-native-reanimated 2.8.0
expo 45.0.0
l33the commented 2 years ago

Also need to add that this issue didnt happen in expo 44, so something that changed there broke this.

sankparatkar commented 1 year ago

Any update on this issue? @adscud were you able to find a fix?

adelbeke commented 1 year ago

@sankparatkar with react-navigation

<Stack.Navigator
            screenOptions={{
                animation: IS_IOS ? 'default' : 'none',
            }}
        >

In the next SDK releases, FirebaseRecaptcha will be deprecated, the problem will disappear

sankparatkar commented 1 year ago

@adscud Thanks for the quick reply, I'll try it out.