-
Notifications
You must be signed in to change notification settings - Fork 557
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
We upgraded recently Skia from 2.2.3 to 2.2.21 to reuse the useColorBuffer fix and had a lot of Skia memory crashes after this update.
We then updates to 2.4.6 last Monday as a lot of memory crash issues where fixed since 2.2.21.
For Android, all issues are gone, and our crash rate is back to normal.
On iOS, sadly it's not the case and the crash rate remain high.
We are using Skia in two places:
- drawing an audio waveform using Atlas with useRectBuffer / useRSXformBuffer / useColorBuffer and reanimated (canvas, group, atlas)
- drawing an animated logo on app bootstrap (canvas, group, circle, text)
React Native Skia Version
2.4.6
React Native Version
0.79.6
Using New Architecture
- Enabled
Steps to Reproduce
Hard to reproduce, it's random.
Not related to a single device, or iOS versions.
We can provide the component code if needed.
Snack, Code Example, Screenshot, or Link to Repository
Stacktrace 1
CrashReporter Key: 7d312decfada0f03efd8f29a781c650f322242fb
Hardware Model: iPhone12,1
Process: LANDR
Identifier: com.landr.mobile.app
Version: 2.8.3
Role: Foreground
OS Version: iOS 26.0
Exception Type: EXC_BAD_ACCESS
Exception Subtype: KERN_INVALID_ADDRESS
EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x86000874656371.
0 hermes +0x24dc0 hermes::vm::DictPropertyMap::lookupEntryFor(hermes::vm::DictPropertyMap*, hermes::vm::SymbolID)
1 hermes +0x2ad38 hermes::vm::HiddenClass::findProperty(hermes::vm::PseudoHandle<hermes::vm::HiddenClass>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::NamedPropertyDescriptor&)
2 hermes +0x42450 hermes::vm::JSObject::getNamedDescriptorUnsafe(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::NamedPropertyDescriptor&)
3 hermes +0x42b90 hermes::vm::JSObject::getNamedWithReceiver_RJS(hermes::vm::Handle<hermes::vm::JSObject>, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::PropOpFlags, hermes::vm::PropertyCacheEntry*)
4 hermes +0xc0f0 facebook::hermes::HermesRuntimeImpl::throwPendingError()::$_3::operator()(hermes::vm::SymbolID, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) const
5 hermes +0xbf58 facebook::hermes::HermesRuntimeImpl::throwPendingError()
6 hermes +0xa0c0 facebook::hermes::HermesRuntimeImpl::getProperty(facebook::jsi::Object const&, facebook::jsi::String const&)
7 LANDR +0xe60c68 facebook::jsi::Object::getProperty(facebook::jsi::Runtime&, facebook::jsi::String const&) const (jsi-inl.h:96:18)
8 LANDR +0xe60c68 facebook::jsi::Object::getProperty(facebook::jsi::Runtime&, char const*) const (jsi-inl.h:92:10)
9 LANDR +0xe60c68 void RNSkia::convertPropertyImpl<std::__1::vector<SkRect, std::__1::allocator<SkRect>>, std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Object const&)::operator()(facebook::jsi::Runtime&, facebook::jsi::Object const&) const (Convertor.h:89:24)
10 LANDR +0xe60abc void RNSkia::convertPropertyImpl<std::__1::vector<SkRect, std::__1::allocator<SkRect>>, std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Convertor.h:93:5)
11 LANDR +0xe5ff10 void RNSkia::convertProperty<std::__1::vector<SkRect, std::__1::allocator<SkRect>>>(facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::vector<SkRect, std::__1::allocator<SkRect>>&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Convertor.h:104:3)
12 LANDR +0xe5ff10 RNSkia::AtlasCmd::AtlasCmd(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Drawings.h:935:5)
13 LANDR +0xe5fd4c RNSkia::AtlasCmd::AtlasCmd(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (Drawings.h:933:60)
14 LANDR +0xe5fd4c std::__1::__unique_if<RNSkia::AtlasCmd>::__unique_single std::__1::make_unique[abi:ne190102]<RNSkia::AtlasCmd, std::__1::shared_ptr<RNSkia::RNSkPlatformContext>&, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&>(std::__1::shared_ptr<RNSkia::RNSkPlatformContext>&, facebook::jsi::Runtime&, facebook::jsi::Object const&, std::__1::map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>, std::__1::less<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const, std::__1::vector<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>, std::__1::allocator<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Object const&)>>>>>>&) (unique_ptr.h:635:30)
15 LANDR +0xe5fd4c RNSkia::Recorder::drawAtlas(facebook::jsi::Runtime&, facebook::jsi::Object const&) (RNRecorder.h:360:9)
16 LANDR +0xe3e2c0 RNSkia::JsiRecorder::drawAtlas(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) (JsiRecorder.h:289:18)
17 LANDR +0x86e604 std::__1::__function::__value_func<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()[abi:ne190102](facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&) const (function.h:430:12)
18 LANDR +0x86e604 std::__1::function<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) const (function.h:989:10)
19 hermes +0x13788 std::__1::function<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) const
20 hermes +0x13450 facebook::hermes::HermesRuntimeImpl::HFContext::func(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
21 hermes +0x230f0 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
22 hermes +0x2f6f8 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
23 hermes +0x31104 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
24 hermes +0x306f0 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
25 hermes +0x231d8 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
26 hermes +0x21c40 hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool)
27 hermes +0x7a4a4 hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
28 hermes +0x230f0 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
29 hermes +0x2f6f8 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
30 hermes +0x31104 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
31 hermes +0x306f0 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
32 hermes +0x231d8 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
33 hermes +0x21c40 hermes::vm::Callable::executeCall3(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&, hermes::vm::Handle<hermes::vm::HermesValue>, hermes::vm::HermesValue, hermes::vm::HermesValue, hermes::vm::HermesValue, bool)
34 hermes +0x7a4a4 hermes::vm::arrayPrototypeForEach(void*, hermes::vm::Runtime&, hermes::vm::NativeArgs)
35 hermes +0x230f0 hermes::vm::NativeFunction::_nativeCall(hermes::vm::NativeFunction*, hermes::vm::Runtime&)
36 hermes +0x2f6f8 hermes::vm::Interpreter::handleCallSlowPath(hermes::vm::Runtime&, hermes::vm::PinnedHermesValue*)
37 hermes +0x31104 hermes::vm::CallResult<hermes::vm::HermesValue, (hermes::vm::detail::CallResultSpecialize)2> hermes::vm::Interpreter::interpretFunction<false, false>(hermes::vm::Runtime&, hermes::vm::InterpreterState&)
38 hermes +0x306f0 hermes::vm::Runtime::interpretFunctionImpl(hermes::vm::CodeBlock*)
39 hermes +0x231d8 hermes::vm::JSFunction::_callImpl(hermes::vm::Handle<hermes::vm::Callable>, hermes::vm::Runtime&)
40 hermes +0x22de4 hermes::vm::BoundFunction::_boundCall(hermes::vm::BoundFunction*, hermes::inst::Inst const*, hermes::vm::Runtime&)
41 hermes +0xb878 facebook::hermes::HermesRuntimeImpl::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)
42 LANDR +0xc59fcc facebook::jsi::Function::call(facebook::jsi::Runtime&, facebook::jsi::Value const*, unsigned long) const (jsi-inl.h:268:18)
43 LANDR +0xc59fcc facebook::jsi::Function::call(facebook::jsi::Runtime&, std::initializer_list<facebook::jsi::Value>) const (jsi-inl.h:273:10)
44 LANDR +0xc59fcc facebook::react::Task::execute(facebook::jsi::Runtime&, bool) (Task.cpp:45:19)
45 LANDR +0xc539d0 facebook::react::RuntimeScheduler_Legacy::executeTask(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::Task> const&, bool) (RuntimeScheduler_Legacy.cpp:265:25)
46 LANDR +0xc53ce8 facebook::react::RuntimeScheduler_Legacy::startWorkLoop(facebook::jsi::Runtime&) (RuntimeScheduler_Legacy.cpp:235:7)
47 LANDR +0xba02c0 std::__1::__function::__value_func<void (facebook::jsi::Runtime&)>::operator()[abi:ne190102](facebook::jsi::Runtime&) const (function.h:430:12)
48 LANDR +0xba02c0 std::__1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const (function.h:989:10)
49 LANDR +0xba02c0 RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()::operator()() const (RCTSurfacePresenterBridgeAdapter.mm:75:7)
50 LANDR +0xba02c0 decltype(std::declval<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>()()) std::__1::__invoke[abi:ne190102]<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>(RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&) (invoke.h:149:25)
51 LANDR +0xba02c0 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&>(RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()&) (invoke.h:224:5)
52 LANDR +0xba02c0 std::__1::__function::__alloc_func<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'(), std::__1::allocator<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()>, void ()>::operator()[abi:ne190102]() (function.h:171:12)
53 LANDR +0xba02c0 std::__1::__function::__func<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'(), std::__1::allocator<RCTRuntimeExecutorFromBridge(RCTBridge*)::$_0::operator()(std::__1::function<void (facebook::jsi::Runtime&)>&&) const::'lambda'()>, void ()>::operator()() (function.h:313:10)
54 LANDR +0xc01f04 std::__1::__function::__value_func<void (facebook::jsi::Runtime&)>::operator()[abi:ne190102](facebook::jsi::Runtime&) const (function.h:430:12)
55 LANDR +0xc01f04 std::__1::function<void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) const (function.h:989:10)
56 LANDR +0xc01f04 facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0::operator()(facebook::react::JSExecutor*) const (Instance.cpp:358:11)
57 LANDR +0xc01f04 decltype(std::declval<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&>()(std::declval<facebook::react::JSExecutor*>())) std::__1::__invoke[abi:ne190102]<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*>(facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*&&) (invoke.h:149:25)
58 LANDR +0xc01f04 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*>(facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0&, facebook::react::JSExecutor*&&) (invoke.h:224:5)
59 LANDR +0xc01f04 std::__1::__function::__alloc_func<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0, std::__1::allocator<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0>, void (facebook::react::JSExecutor*)>::operator()[abi:ne190102](facebook::react::JSExecutor*&&) (function.h:171:12)
60 LANDR +0xc01f04 std::__1::__function::__func<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0, std::__1::allocator<facebook::react::Instance::JSCallInvoker::scheduleAsync(std::__1::function<void (facebook::jsi::Runtime&)>&&)::$_0>, void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*&&) (function.h:313:10)
61 LANDR +0xc0a030 std::__1::__function::__value_func<void (facebook::react::JSExecutor*)>::operator()[abi:ne190102](facebook::react::JSExecutor*&&) const (function.h:430:12)
62 LANDR +0xc0a030 std::__1::function<void (facebook::react::JSExecutor*)>::operator()(facebook::react::JSExecutor*) const (function.h:989:10)
63 LANDR +0xc0a030 facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0::operator()() const (NativeToJsBridge.cpp:308:9)
64 LANDR +0xc0a030 decltype(std::declval<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>()()) std::__1::__invoke[abi:ne190102]<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&) (invoke.h:149:25)
65 LANDR +0xc0a030 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&>(facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0&) (invoke.h:224:5)
66 LANDR +0xc0a030 std::__1::__function::__alloc_func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0>, void ()>::operator()[abi:ne190102]() (function.h:171:12)
67 LANDR +0xc0a030 std::__1::__function::__func<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0, std::__1::allocator<facebook::react::NativeToJsBridge::runOnExecutorQueue(std::__1::function<void (facebook::react::JSExecutor*)>&&)::$_0>, void ()>::operator()() (function.h:313:10)
68 LANDR +0xa1e4cc std::__1::__function::__value_func<void ()>::operator()[abi:ne190102]() const (function.h:430:12)
69 LANDR +0xa1e4cc std::__1::function<void ()>::operator()() const (function.h:989:10)
70 LANDR +0xa1e4cc facebook::react::tryAndReturnError(std::__1::function<void ()> const&) (RCTCxxUtils.mm:73:7)
71 LANDR +0xa2cc9c facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) (RCTMessageThread.mm:68:20)
72 LANDR +0xa2caa8 std::__1::__function::__value_func<void ()>::operator()[abi:ne190102]() const (function.h:430:12)
73 LANDR +0xa2caa8 std::__1::function<void ()>::operator()() const (function.h:989:10)
74 LANDR +0xa2caa8 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) (RCTMessageThread.mm:44:7)
75 CoreFoundation +0x1c4f4 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__
76 CoreFoundation +0x1c1c0 ___CFRunLoopDoBlocks
77 CoreFoundation +0x1d89c ___CFRunLoopRun
78 CoreFoundation +0x1cc40 __CFRunLoopRunSpecificWithOptions
79 LANDR +0xa147d0 +[RCTCxxBridge runRunLoop] (RCTCxxBridge.mm:347:12)
80 Foundation +0x61d38 ___NSThread__start__
81 libsystem_pthread.dylib +0x4448 __pthread_start
Stacktrace 2:
CrashReporter Key: 8beeb9642ba4ae8ea595693339106ed7a2cf024c
Hardware Model: iPhone14,3
Process: LANDR
Identifier: com.landr.mobile.app
Version: 2.8.3
Role: Foreground
OS Version: iOS 26.1
Exception Type: EXC_BAD_ACCESS
Exception Subtype: KERN_INVALID_ADDRESS
EXC_BAD_ACCESS: Attempted to dereference garbage pointer 0x3bea82b8a6492040.
0 LANDR +0x10554c8 GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkShaders::MatrixRec const&)
1 LANDR +0x10559dc GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkShaders::MatrixRec const&)
2 LANDR +0x1057a78 GrFragmentProcessors::Make(SkShader const*, GrFPArgs const&, SkMatrix const&)
3 LANDR +0x107cc54 skpaint_to_grpaint_impl(skgpu::ganesh::SurfaceDrawContext*, SkPaint const&, SkMatrix const&, std::__1::optional<std::__1::unique_ptr<GrFragmentProcessor, std::__1::default_delete<GrFragmentProcessor>>>, SkBlender*, GrPaint*)
4 LANDR +0x107cb3c SkPaintToGrPaint(skgpu::ganesh::SurfaceDrawContext*, SkPaint const&, SkMatrix const&, GrPaint*)
5 LANDR +0x103058c skgpu::ganesh::Device::drawRect(SkRect const&, SkPaint const&)
6 LANDR +0xf65464 SkCanvas::onDrawRect(SkRect const&, SkPaint const&)
7 LANDR +0xf64674 SkCanvas::drawRect(SkRect const&, SkPaint const&)
8 LANDR +0xfe9ed4 SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
9 LANDR +0xf68168 SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
10 LANDR +0xe70900 SkCanvas::drawPicture(SkPicture const*) (SkCanvas.h:2041:15)
11 LANDR +0xe70900 SkCanvas::drawPicture(sk_sp<SkPicture> const&) (SkCanvas.h:2053:15)
12 LANDR +0xe70900 RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)::operator()(SkCanvas*) const (RNSkPictureView.h:70:17)
13 LANDR +0xe70900 decltype(std::declval<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&>()(std::declval<SkCanvas*>())) std::__1::__invoke[abi:ne190102]<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*>(RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*&&) (invoke.h:149:25)
14 LANDR +0xe70900 void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ne190102]<RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*>(RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>)::'lambda'(SkCanvas*)&, SkCanvas*&&) (invoke.h:224:5)
15 LANDR +0xe6c01c std::__1::__function::__value_func<void (SkCanvas*)>::operator()[abi:ne190102](SkCanvas*&&) const (function.h:430:12)
16 LANDR +0xe6c01c std::__1::function<void (SkCanvas*)>::operator()(SkCanvas*) const (function.h:989:10)
17 LANDR +0xe6c01c RNSkMetalCanvasProvider::renderToCanvas(std::__1::function<void (SkCanvas*)> const&) (RNSkMetalCanvasProvider.mm:86:5)
18 LANDR +0xe70754 RNSkia::RNSkPictureRenderer::performDraw(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>) (RNSkPictureView.h:63:28)
19 LANDR +0xe70690 RNSkia::RNSkPictureRenderer::renderImmediate(std::__1::shared_ptr<RNSkia::RNSkCanvasProvider>) (RNSkPictureView.h:51:5)
20 LANDR +0xddcc08 RNSkia::RNSkView::requestRedraw()::'lambda'()::operator()() const (RNSkView.h:162:36)
21 libdispatch.dylib +0x1ad8 __dispatch_call_block_and_release
22 libdispatch.dylib +0x1b7e8 __dispatch_client_callout
23 libdispatch.dylib +0x38b20 __dispatch_main_queue_drain.cold.5
24 libdispatch.dylib +0x10ec4 __dispatch_main_queue_drain
25 libdispatch.dylib +0x10e00 __dispatch_main_queue_callback_4CF
26 CoreFoundation +0x6a2c4 ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
27 CoreFoundation +0x1db38 ___CFRunLoopRun
28 CoreFoundation +0x1ca68 __CFRunLoopRunSpecificWithOptions
29 GraphicsServices +0x1494 _GSEventRunModal
30 UIKitCore +0x9dba0 -[UIApplication _run]
31 UIKitCore +0x46a74 _UIApplicationMain
32 LANDR +0x590c main (AppDelegate.swift:13:14)
33 dyld +0x4e24 start
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working