Open y-daniel-1113 opened 7 months ago
Hi @y-daniel-1113, can you share a reproducible sample with us so we can more quickly investigate this issue?
@HayesGordon We can only check for this issue through Firebase Crashlytics. I am using version 5.11.6, but this problem (BackgroundShaderCompiler) still occurs.
There have been over 8700 crashes in the last month and we are considering returning to Lottie.
Hi @y-daniel-1113, we'll take a look into this.
The crash seems to be related to the Rive renderer. While we work on a fix, a temporary solution is switching from the Rive renderer to one of the others. Skia is currently the default renderer if none is configured manually. In your code where you're specifying the renderer, you can choose skiaRenderer
(or you can remove the code to override the default):
RenderContextManager.shared().defaultRenderer = RendererType.skiaRenderer
More information can be found here: https://rive.app/community/doc/overview/docD20dU9Rod#specifying-a-renderer
Hi @y-daniel-1113 , thank you for the crash logs. Based on what we see, I have high confidence that the root issue here has been fixed in version 5.12.0
. Are you by chance using image meshes in any of your assets? And did this crash only start happening recently?
We are currently in the process of deploying device farm testing in order to make sure regressions like this don't happen in the future once we release the Rive renderer by default.
@csmartdalton We checked the logs for this issue from versions 5.10.0 to 5.11.6. Because Rive Animation was used when starting the app in version 5.10.0, the exact starting point is unknown. The designer said he used Shapes rather than images After updating to version 5.12.0, we plan to check whether the issue is recorded in Firebase.
@csmartdalton
During testing, we again confirmed that the app crashed as soon as it was launched. Rive 5.12.0
Crashed: com.google.firebase.crashlytics.ios.exception
0 APP 0x25da9c FIRCLSProcessRecordAllThreads + 392 (FIRCLSProcess.c:392)
1 APP 0x25de7c FIRCLSProcessRecordAllThreads + 423 (FIRCLSProcess.c:423)
2 APP 0x26bee8 FIRCLSHandler + 34 (FIRCLSHandler.m:34)
3 APP 0x26bcec FIRCLSExceptionRecord_block_invoke + 240 (FIRCLSException.mm:240)
4 libdispatch.dylib 0x3dd4 _dispatch_client_callout + 20
5 libdispatch.dylib 0x132c4 _dispatch_lane_barrier_sync_invoke_and_complete + 56
6 APP 0x26ac68 FIRCLSExceptionRecord + 242 (FIRCLSException.mm:242)
7 APP 0x26a934 FIRCLSTerminateHandler() + 413 (FIRCLSException.mm:413)
8 libc++abi.dylib 0x14090 std::terminate(void ()()) + 16
9 libc++abi.dylib 0x172e4 __cxa_get_exception_ptr + 86
10 libc++abi.dylib 0x17228 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception) + 306
11 libc++.1.dylib 0x1f448 std::1::throw_system_error(int, char const) + 100
12 libc++.1.dylib 0x1f4ec std::1::thread::detach() + 70
13 RiveRuntime 0x477764 rive::pls::BackgroundShaderCompiler::~BackgroundShaderCompiler() + 60
14 RiveRuntime 0x48e01c rive::pls::PLSRenderContextMetalImpl::~PLSRenderContextMetalImpl() + 204
15 RiveRuntime 0xb748 make_pls_context_native(id
Thanks for checking @y-daniel-1113 !
Are you able to provide a .riv file that reproduces the crash? Does Firebase tell you device information that the crash came from?
This is currently P0 and I'll keep you posted on our end as we go.
logo_splash.riv.zip @csmartdalton These are Rive Animation files and Firebase screenshots.
@y-daniel-1113 -- we have now finished deploying our device farm golden testing for iOS and I have verified that I am able to render logo_splash.riv
on an iPhone 15 running iOS 17.5.1.
Could you please check Rive 5.14.1 and see if it works for you now? If it does not, would you be open to sharing a compilable code sample that reproduces the issue so we can track it down?
@csmartdalton We are going to update the app soon We are going to change back from skia to rive renderer and will leave the results after using version 5.14.1
@y-daniel-1113 Have you seen fewer crash reports with our latest releases?
A crash occurs when using Rive animation on the splash screen after starting the app.
Rive Version : 5.10.0
Renderer : Rive Renderer
0 (null) in __pthread_kill ()
1 (null) in pthread_kill ()
2 (null) in __abort ()
3 (null) in abort ()
4 (null) in abort_message ()
5 (null) in demangling_terminate_handler() ()
6 (null) in _objc_terminate() ()
7 0x0000000104e4e9b4 in FIRCLSTerminateHandler() #8 (null) in std::__terminate(void (*)()) ()
9 (null) in __cxxabiv1::failed_throw(cxxabiv1::cxa_exception*) ()
10 (null) in __cxa_throw ()
11 (null) in std::1::throw_system_error(int, char const*) ()
12 (null) in std::__1::thread::join() ()
13 (null) in rive::pls::BackgroundShaderCompiler::~BackgroundShaderCompiler() ()
14 (null) in rive::pls::PLSRenderContextMetalImpl::~PLSRenderContextMetalImpl() ()
15 (null) in make_pls_context_native(id)::PLSRenderContextNativeImpl::~PLSRenderContextNativeImpl() ()
16 (null) in rive::pls::PLSRenderContext::~PLSRenderContext() ()
17 (null) in rive::pls::PLSRenderContext::~PLSRenderContext() ()
18 (null) in std::__1::unique_ptr<rive::pls::PLSRenderContext, std::__1::default_delete >::~unique_ptr[abi:v160006]() ()
19 (null) in __cxa_finalize_ranges ()
20 (null) in exit ()
21 (null) in rive::pls::BackgroundShaderCompiler::threadMain() ()
22 (null) in void* std::1::thread_proxy[abi:v160006]<std::1::tuple<std::1::unique_ptr<std::1::thread_struct, std::__1::default_delete >, void (rive::pls::BackgroundShaderC... ()
23 (null) in _pthread_start ()
24 (null) in thread_start ()
-case2
0 (null) in rive::pls::PLSRenderContext::beginFrame(rive::pls::PLSRenderContext::FrameDescriptor const&) ()
1 (null) in -[RiveRendererContext beginFrame:] ()
2 (null) in -[RiveRendererView drawRect:] ()
3 (null) in -[MTKView draw] ()
4 (null) in CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
5 (null) in CA::Context::commit_transaction(CA::Transaction, double, double) ()
6 (null) in CA::Transaction::commit() ()
7 (null) in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
8 (null) in CA::Display::DisplayLink::callback(_CADisplayTimer, unsigned long long, unsigned long long, unsigned long long, bool, void) ()
9 (null) in display_timer_callback(__CFMachPort, void, long, void*) ()
10 (null) in __CFMachPortPerform ()
11 (null) in CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION ()
12 (null) in __CFRunLoopDoSource1 ()
13 (null) in __CFRunLoopRun ()
14 (null) in CFRunLoopRunSpecific ()
15 (null) in GSEventRunModal ()
16 (null) in -[UIApplication _run] ()
17 (null) in UIApplicationMain ()
18 0x0000000104f490c4
19 (null) in start ()
-case3
0 (null) in rive::pls::PLSRenderContext::mapResourceBuffers(rive::pls::PLSRenderContext::ResourceAllocationCounts const&) ()
1 (null) in rive::pls::PLSRenderContext::mapResourceBuffers(rive::pls::PLSRenderContext::ResourceAllocationCounts const&) ()
2 (null) in rive::pls::PLSRenderContext::flush(rive::pls::PLSRenderContext::FlushResources const&) ()
3 (null) in -[RiveRendererContext endFrame] ()
4 (null) in -[RiveRendererView drawRect:] ()
5 (null) in -[MTKView draw] ()
6 (null) in CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
7 (null) in CA::Context::commit_transaction(CA::Transaction, double, double) ()
8 (null) in CA::Transaction::commit() ()
9 (null) in CA::Transaction::flush_as_runloop_observer(bool) ()
10 (null) in _UIApplicationFlushCATransaction ()
11 (null) in _UIUpdateSequenceRun ()
12 (null) in schedulerStepScheduledMainSection ()
13 (null) in runloopSourceCallback ()
14 (null) in CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION ()
15 (null) in __CFRunLoopDoSource0 ()
16 (null) in __CFRunLoopDoSources0 ()
17 (null) in __CFRunLoopRun ()
18 (null) in CFRunLoopRunSpecific ()
19 (null) in GSEventRunModal ()
20 (null) in -[UIApplication _run] ()
21 (null) in UIApplicationMain ()
22 0x00000001027590c4
23 (null) in start ()
Device & Versions (please complete the following information)
Additional context
Libraries added to the new version: Google Admob & Mediation