rive-app / rive-android

A runtime for interactive animations on Android
https://rive.app
MIT License
332 stars 30 forks source link

Crash while animating RiveAnimationView #322

Closed mrrobot97 closed 2 months ago

mrrobot97 commented 3 months ago

When animating RiveAnimationView(increasing size & change translationX、Y), sometime rive will Crash:


Tombstone maker: 'xCrash 3.1.0' Crash type: 'native' Start time: '2024-03-25T14:33:40.154+0800' Crash time: '2024-03-25T14:37:20.168+0800' App version: '1.0.0, appSupport64Bit=true, device64Arch=true' Rooted: 'No' API level: '29' OS version: '10' Kernel version: 'Linux version 4.14.116 #1 SMP PREEMPT Thu Jul 7 23:42:57 CST 2022 (aarch64)' ABI list: 'arm64-v8a,armeabi-v7a,armeabi' Manufacturer: 'HUAWEI' Brand: 'HUAWEI' Model: 'SCM-W09' Build fingerprint: 'HUAWEI/SCM-W09/HWSCM:10/HUAWEISCM-W09/102.0.0.261C00:user/release-keys' ABI: 'arm64' pid: 7223, tid: 8435, name: Thread-108 >>> com.fenbi.android.aioral.admin.debug <<< signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- Abort message: 'FORTIFY: pthread_mutex_lock called on a destroyed mutex (0x77a0de1d84)' x0 0000000000000000 x1 00000000000020f3 x2 0000000000000006 x3 00000078049fb830 x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000000000000038 x8 00000000000000f0 x9 34fc8a9bba8a31aa x10 0000000000000001 x11 0000000000000000 x12 fffffff0fffffbdf x13 0000000066011b9f x14 000356bbbf16d4c1 x15 00001c9d3c6a97ea x16 0000007909a24a08 x17 0000007909a047c0 x18 00000077e4dd2000 x19 0000000000001c37 x20 00000000000020f3 x21 00000000ffffffff x22 00000077a0de1000 x23 00000078049fc020 x24 000000790789a0a0 x25 0000007907897028 x26 0000000000000055 x27 00000078049fc020 x28 0000007fe6cf4380 x29 00000078049fb8d0 sp 00000078049fb810 lr 00000079099b9640 pc 00000079099b966c

backtrace:

00 pc 000000000007066c /apex/com.android.runtime/lib64/bionic/libc.so (abort+160)

#01 pc 00000000000d0d4c  /apex/com.android.runtime/lib64/bionic/libc.so (_ZL15__fortify_fatalPKcz+116)
#02 pc 00000000000d0480  /apex/com.android.runtime/lib64/bionic/libc.so (_ZL25HandleUsingDestroyedMutexP15pthread_mutex_tPKc+52)
#03 pc 00000000000d02e4  /apex/com.android.runtime/lib64/bionic/libc.so (pthread_mutex_lock+148)
#04 pc 00000000000ca55c  /system/lib64/libgui.so (_ZNK7android7Surface5queryEiPi+92)
#05 pc 0000000000020794  /system/lib64/libEGL.so (_ZN7android26eglCreateWindowSurfaceTmplIiPFPvS1_S1_P13ANativeWindowPKiEEES1_NS_15egl_display_ptrEPNS_16egl_connection_tES1_S3_PKT_T0_+92)
#06 pc 0000000000020704  /system/lib64/libEGL.so (_ZN7android26eglCreateWindowSurfaceImplEPvS0_P13ANativeWindowPKi+96)
#07 pc 00000000001d08c4  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so (_ZN12rive_android14EGLThreadState16createEGLSurfaceEP13ANativeWindow+32)
#08 pc 00000000001d8590  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so (_ZN12rive_android14SkiaWorkerImplC2EP13ANativeWindowPNS_19DrawableThreadStateEPb+84)
#09 pc 00000000001d79a8  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so (_ZN12rive_android10WorkerImpl4MakeENSt6__ndk17variantIJNS1_9monostateEP13ANativeWindowP8_jobjectEEEPNS_19DrawableThreadStateENS_12RendererTypeE+204)
#10 pc 00000000001d7624  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so
#11 pc 00000000001d1ec8  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so (_ZN12rive_android12WorkerThread10threadMainEv+492)
#12 pc 00000000001d1ca4  /data/app/com.fenbi.android.aioral.admin.debug-N4-hcouzqTnwk7quNsB7dQ==/lib/arm64/librive-android.so
#13 pc 00000000000cf7c0  /apex/com.android.runtime/lib64/bionic/libc.so (_ZL15__pthread_startPv+36)
#14 pc 00000000000721a8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

build id: /apex/com.android.runtime/lib64/bionic/libc.so (BuildId: b91c775ccc9b0556e91bc575a2511cd0. FileSize: 1136552. LastModified: 1970-01-01T08:00:00.000+0800. MD5: ff40d3ea40394ad399ff9cb5d431eb22) /system/lib64/libgui.so (BuildId: 333d49d026afa052a5c553b4f40e22b9. FileSize: 1055080. LastModified: 2018-08-08T00:01:00.000+0800. MD5: d13a2fecb8576d2d96be20568a028142) /system/lib64/libEGL.so (BuildId: 9f54126ca3c5e205a088560d488b3844. FileSize: 225576. LastModified: 2018-08-08T00:01:00.000+0800. MD5: b2bb06348fc841449d94721fe9ab1060) /

Device: HUAWEI SCM-W09(Android 10, API 29) Rive sdk version: 9.2.2

umberto-sonnino commented 2 months ago

Can you try our latest version 9.3.1? We fixed a race condition that looks very similar to this

mrrobot97 commented 2 months ago

Can you try our latest version 9.3.1? We fixed a race condition that looks very similar to this

After several comparative experiments, I can confirm the crash caused by animating size is fixed in 9.3.1(At least on my previously crashed device).

PS. I have found the crash was caused by frequently onSizeChanged() callback in TextureView so I'm currently using scale animation instead size change animation.

umberto-sonnino commented 2 months ago

Can you try our latest version 9.3.1? We fixed a race condition that looks very similar to this

After several comparative experiments, I can confirm the crash caused by animating size is fixed in 9.3.1(At least on my previously crashed device).

PS. I have found the crash was caused by frequently onSizeChanged() callback in TextureView so I'm currently using scale animation instead size change animation.

This sounds exactly the same as https://github.com/rive-app/rive-android/issues/324 Thanks for confirming, going to close the issue!