react-native-reanimated
react-native-reanimated copied to clipboard
[iOS Crash] EXC_BAD_ACCESS in folly::dynamic::hash() via ShadowNode clone — intermittent crash on Reanimated 3.17.1
Description
Description
I’m encountering an intermittent crash on iOS when running my React Native app using react-native-reanimated. The crash doesn't happen consistently, but it occurs occasionally during normal usage. It seems related to the native folly::dynamic::hash() call via ShadowNode::clone().
This crash occurs on real iOS devices.
Stack Trace Screenshot
Please find the crash log screenshot below:
Key lines: EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 folly::dynamic::hash() const + 490 ShadowNode::clone(facebook::react::ShadowNodeFragment const&) + 144 reanimated::cloneShadowTreeWithNewPropsRecursive(...)
Steps to reproduce
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000 folly::dynamic::hash() const + 490 ShadowNode::clone(facebook::react::ShadowNodeFragment const&) + 144 reanimated::cloneShadowTreeWithNewPropsRecursive(...)
- This seems to be a native-level crash related to
folly::dynamicbeing used as a key in an unordered map. - I’m not directly using folly, but I believe it's used internally by Reanimated or React Native core.
- I suspect a
nullor improperly initialized dynamic value may be passed during ShadowNode cloning.
Reanimated Setup
- Reanimated plugin added in
babel.config.js - Ran
npx react-native-reanimated patch - Linked properly with CocoaPods (
pod installdone)
What I've Tried
- Cleaned build:
npx react-native-clean,xcodebuild clean - Rebuilt the app multiple times
- Crash still happens occasionally, only on iOS, not Android
Additional Notes
- This seems to be a native-level crash related to
folly::dynamicbeing used as a key in an unordered map. - I’m not directly using folly, but I believe it's used internally by Reanimated or React Native core.
- I suspect a
nullor improperly initialized dynamic value may be passed during ShadowNode cloning.
Request
Please let me know:
- If this is a known issue
- Any workaround or patch
- If I can provide a minimal repro (currently it's hard to reproduce consistently)
Snack or a link to a repository
This issue occurs intermittently on a real iOS device and involves a crash inside native code (folly::dynamic::hash() via ShadowNode::clone). Since the crash involves React Native Fabric internals triggered via react-native-reanimated, it cannot be reproduced in Snack (which does not support native modules or Hermes). Due to the native nature and randomness of this crash, creating a minimal reproduction repo is extremely difficult. However, I’ve attached the crash log screenshot and full environment info to help with investigation.
Reanimated version
^3.17.1
React Native version
0.79.1
Platforms
iOS
JavaScript runtime
None
Workflow
React Native
Architecture
Fabric (New Architecture)
Build type
Debug app & production bundle, Release app & production bundle
Device
Real device, iOS simulator
Host machine
macOS
Device model
iphone 12 , iphone 6s, iphone 7
Acknowledgements
Yes
Hey! 👋
The issue doesn't seem to contain a minimal reproduction.
Could you provide a snack or a link to a GitHub repository under your username that reproduces the problem?
Hey! 👋
It looks like you've omitted a few important sections from the issue template.
Please complete Description section.
Due to the intermittent and native-only nature of the issue, a consistent reproduction is difficult, but here’s what generally happens:
Start the app (with Hermes enabled and using Reanimated 3.17.1)
Navigate between screens that use animated components
Occasionally, the app crashes with a native EXC_BAD_ACCESS in folly::dynamic::hash()
I’ve tried cleaning builds, patching Reanimated, checking for undefined animated props, and verifying proper Reanimated setup — but the crash persists.
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000000000000000
folly::dynamic::hash()
facebook::react::ShadowNode::clone(...)
reanimated::cloneShadowTreeWithNewPropsRecursive(...)
System: OS: macOS CPU: Apple Silicon (M4) Xcode: 16.2
Packages: react: 19.0.0 react-native: 0.79.1 react-native-reanimated: 3.17.1 hermes-engine: enabled
We're hitting the same issue, affecting ~1 in 10 users. We also have no reliable way to reproduce it so we're currently looking into automating the behavior the seems to cause it in the iOS Simulator (where it also happens), and seeing if ASAN / TSAN provide any additional information.
Here's the relevant callstack from the one time we've managed to catch this in the debugger so far:
EXC_BAD_ACCESS
#0 0x0000000100745a98 in folly::dynamic::hash [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:490
#1 0x0000000100745a98 in folly::dynamic::hash at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:337
#2 0x00000001007473bc in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__emplace_unique_key_args<folly::dynamic, std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:36
#3 0x00000001007473b4 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__emplace_unique_key_args<folly::dynamic, std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/unordered_map:647
#4 0x00000001007473b4 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__emplace_unique_key_args<folly::dynamic, std::__1::pair<folly::dynamic const, folly::dynamic> const&> at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__hash_table:1477
#5 0x000000010074735c in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__hash_table:821
#6 0x0000000100747350 in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/unordered_map:1732
#7 0x0000000100747348 in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/unordered_map:1658
#8 0x0000000100745050 in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/container/detail/F14MapFallback.h:42
#9 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/container/detail/F14MapFallback.h:650
#10 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:170
#11 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:170
#12 0x000000010074504c in folly::dynamic::dynamic at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:136
#13 0x0000000100747258 in std::__1::__uninitialized_allocator_copy_impl[abi:ne180100]<std::__1::allocator<folly::dynamic>, folly::dynamic*, folly::dynamic*, folly::dynamic*> [inlined] at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:134
#14 0x0000000100747250 in std::__1::__uninitialized_allocator_copy_impl[abi:ne180100]<std::__1::allocator<folly::dynamic>, folly::dynamic*, folly::dynamic*, folly::dynamic*> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/construct_at.h:41
#15 0x0000000100747250 in std::__1::__uninitialized_allocator_copy_impl[abi:ne180100]<std::__1::allocator<folly::dynamic>, folly::dynamic*, folly::dynamic*, folly::dynamic*> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/construct_at.h:49
#16 0x0000000100747250 in std::__1::__uninitialized_allocator_copy_impl[abi:ne180100]<std::__1::allocator<folly::dynamic>, folly::dynamic*, folly::dynamic*, folly::dynamic*> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/allocator_traits.h:305
#17 0x0000000100747250 in std::__1::__uninitialized_allocator_copy_impl[abi:ne180100]<std::__1::allocator<folly::dynamic>, folly::dynamic*, folly::dynamic*, folly::dynamic*> at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/uninitialized_algorithms.h:550
#18 0x0000000100747158 in std::__1::vector<folly::dynamic, std::__1::allocator<folly::dynamic>>::__init_with_size[abi:ne180100]<folly::dynamic*, folly::dynamic*> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/uninitialized_algorithms.h:592
#19 0x0000000100747148 in std::__1::vector<folly::dynamic, std::__1::allocator<folly::dynamic>>::__init_with_size[abi:ne180100]<folly::dynamic*, folly::dynamic*> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/vector:1082
#20 0x0000000100747140 in std::__1::vector<folly::dynamic, std::__1::allocator<folly::dynamic>>::__init_with_size[abi:ne180100]<folly::dynamic*, folly::dynamic*> at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/vector:760
#21 0x0000000100745020 in folly::dynamic::dynamic [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/vector:1195
#22 0x0000000100744ff8 in folly::dynamic::dynamic [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/vector:1194
#23 0x0000000100744ff8 in folly::dynamic::dynamic at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:136
#24 0x000000010074769c in std::__1::pair<folly::dynamic const, folly::dynamic>::pair[abi:ne180100] [inlined] at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:134
#25 0x0000000100747698 in std::__1::pair<folly::dynamic const, folly::dynamic>::pair[abi:ne180100] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__utility/pair.h:91
#26 0x0000000100747640 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__construct_node_hash<std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__utility/pair.h:91
#27 0x0000000100747638 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__construct_node_hash<std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/construct_at.h:41
#28 0x0000000100747638 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__construct_node_hash<std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/construct_at.h:49
#29 0x0000000100747638 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__construct_node_hash<std::__1::pair<folly::dynamic const, folly::dynamic> const&> [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__memory/allocator_traits.h:305
#30 0x0000000100747638 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__construct_node_hash<std::__1::pair<folly::dynamic const, folly::dynamic> const&> at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__hash_table:1790
#31 0x0000000100747480 in std::__1::__hash_table<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, std::__1::__unordered_map_hasher<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, true>, std::__1::__unordered_map_equal<folly::dynamic, std::__1::__hash_value_type<folly::dynamic, folly::dynamic>, folly::detail::DynamicKeyEqual, folly::detail::DynamicHasher, true>, std::__1::allocator<std::__1::__hash_value_type<folly::dynamic, folly::dynamic>>>::__emplace_unique_key_args<folly::dynamic, std::__1::pair<folly::dynamic const, folly::dynamic> const&> at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__hash_table:1495
#32 0x000000010074735c in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__hash_table:821
#33 0x0000000100747350 in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/unordered_map:1732
#34 0x0000000100747348 in std::__1::unordered_map<folly::dynamic, folly::dynamic, folly::detail::DynamicHasher, folly::detail::DynamicKeyEqual, std::__1::allocator<std::__1::pair<folly::dynamic const, folly::dynamic>>>::unordered_map at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/unordered_map:1658
#35 0x0000000100745050 in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/container/detail/F14MapFallback.h:42
#36 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/container/detail/F14MapFallback.h:650
#37 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:170
#38 0x000000010074504c in folly::dynamic::dynamic [inlined] at /app/ios/Pods/Headers/Private/RCT-Folly/folly/json/dynamic-inl.h:170
#39 0x000000010074504c in folly::dynamic::dynamic at /app/ios/Pods/RCT-Folly/folly/json/dynamic.cpp:136
#40 0x000000010090c9f4 in facebook::react::ShadowNode::clone at /app/node_modules/react-native/ReactCommon/react/renderer/core/ShadowNode.cpp:146
#41 0x00000001007b10a4 in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:60
#42 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#43 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#44 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#45 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#46 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#47 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#48 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#49 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#50 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#51 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#52 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#53 0x00000001007b0ffc in reanimated::cloneShadowTreeWithNewPropsRecursive at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:55
#54 0x00000001007b12a0 in reanimated::cloneShadowTreeWithNewProps at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/Fabric/ShadowTreeCloner.cpp:90
#55 0x00000001007a5388 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator() [inlined] at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp:788
#56 0x00000001007a5364 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__type_traits/invoke.h:344
#57 0x00000001007a5364 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__type_traits/invoke.h:411
#58 0x00000001007a5364 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:169
#59 0x00000001007a5364 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:311
#60 0x000000010090e960 in facebook::react::ShadowTree::tryCommit [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:428
#61 0x000000010090e950 in facebook::react::ShadowTree::tryCommit [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:981
#62 0x000000010090e950 in facebook::react::ShadowTree::tryCommit at /app/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:275
#63 0x000000010090e81c in facebook::react::ShadowTree::commit at /app/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTree.cpp:244
#64 0x00000001007a5214 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0>, void (facebook::react::ShadowTree const&)>::operator() [inlined] at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp:780
#65 0x00000001007a51e0 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0>, void (facebook::react::ShadowTree const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__type_traits/invoke.h:344
#66 0x00000001007a51e0 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0>, void (facebook::react::ShadowTree const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__type_traits/invoke.h:419
#67 0x00000001007a51e0 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0>, void (facebook::react::ShadowTree const&)>::operator() [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:169
#68 0x00000001007a51e0 in std::__1::__function::__func<reanimated::ReanimatedModuleProxy::performOperations()::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::performOperations()::$_0>, void (facebook::react::ShadowTree const&)>::operator() at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:311
#69 0x0000000100911484 in facebook::react::ShadowTreeRegistry::visit [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:428
#70 0x0000000100911478 in facebook::react::ShadowTreeRegistry::visit [inlined] at /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator18.0.sdk/usr/include/c++/v1/__functional/function.h:981
#71 0x0000000100911478 in facebook::react::ShadowTreeRegistry::visit at /app/node_modules/react-native/ReactCommon/react/renderer/mounting/ShadowTreeRegistry.cpp:50
#72 0x000000010079f440 in reanimated::ReanimatedModuleProxy::performOperations at /app/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp:779
#73 0x00000001007901f8 in invocation function for block in reanimated::commonInit(REAModule*, std::__1::shared_ptr<reanimated::ReanimatedModuleProxy>) at /app/node_modules/react-native-reanimated/apple/reanimated/apple/native/NativeProxy.mm:107
#74 0x00000001007a8f6c in -[REANodesManager performOperations] at /app/node_modules/react-native-reanimated/apple/reanimated/apple/REANodesManager.mm:307
#75 0x00000001007a8eb8 in -[REANodesManager onAnimationFrame:] at /app/node_modules/react-native-reanimated/apple/reanimated/apple/REANodesManager.mm:297
Have also attached the relevant core dump, though I'm not sure if it's of any use: reanimated-corefile-small.zip
TSAN immediately reports the following:
WARNING: ThreadSanitizer: data race (pid=6112)
Read of size 8 at 0x00010d109c18 by main thread (mutexes: write M0):
#0 facebook::react::ShadowNode::clone(facebook::react::ShadowNodeFragment const&) const <null> (app:arm64+0x10048c5a8)
#1 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fb10)
#2 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#3 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#4 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#5 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#6 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#7 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#8 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#9 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#10 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#11 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#12 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#13 reanimated::cloneShadowTreeWithNewPropsRecursive(facebook::react::ShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::unordered_set<int, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<int>>>>> const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fa14)
#14 reanimated::cloneShadowTreeWithNewProps(facebook::react::RootShadowNode const&, std::__1::unordered_map<facebook::react::ShadowNodeFamily const*, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>, std::__1::hash<facebook::react::ShadowNodeFamily const*>, std::__1::equal_to<facebook::react::ShadowNodeFamily const*>, std::__1::allocator<std::__1::pair<facebook::react::ShadowNodeFamily const* const, std::__1::vector<facebook::react::RawProps, std::__1::allocator<facebook::react::RawProps>>>>> const&) <null> (app:arm64+0x10027fdb0)
#15 std::__1::__function::__func<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&), std::__1::allocator<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0::operator()(facebook::react::ShadowTree const&) const::'lambda'(facebook::react::RootShadowNode const&)>, std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)>::operator()(facebook::react::RootShadowNode const&) <null> (app:arm64+0x100271a48)
#16 facebook::react::ShadowTree::tryCommit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048feb0)
#17 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fd04)
#18 std::__1::__function::__func<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0, std::__1::allocator<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x100271688)
#19 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x100494314)
#20 reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double) <null> (app:arm64+0x1002713e4)
#21 facebook::react::UIManager::reportMount(int) const <null> (app:arm64+0x1004a581c)
#22 facebook::react::Scheduler::reportMount(int) const <null> (app:arm64+0x10048261c)
#23 -[RCTScheduler reportMount:] <null> (app:arm64+0x10059e4e0)
#24 __69-[RCTSurfacePresenter mountingManager:didMountComponentsWithRootTag:]_block_invoke <null> (app:arm64+0x1005aeb9c)
#25 __tsan::invoke_and_release_block(void*) <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x7bccc)
#26 _dispatch_client_callout <null> (libdispatch.dylib:arm64+0x67b4)
#27 <null> <null> (dyld:arm64+0x140c)
Previous write of size 8 at 0x00010d109c18 by thread T9:
#0 std::__1::unique_ptr<folly::dynamic, std::__1::default_delete<folly::dynamic>>::reset[abi:ne180100](folly::dynamic*) <null> (app:arm64+0x10048eb90)
#1 facebook::react::UIManager::setNativeProps_DEPRECATED(std::__1::shared_ptr<facebook::react::ShadowNode const> const&, facebook::react::RawProps) const <null> (app:arm64+0x1004a48b4)
#2 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_13, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_13>, 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&&) <null> (app:arm64+0x1004b77c4)
#3 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 <null> (hermes:arm64+0x13170)
#4 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 <null> (hermes:arm64+0x13170)
#5 std::__1::__function::__func<facebook::react::TimerManager::callTimer(int)::$_0, std::__1::allocator<facebook::react::TimerManager::callTimer(int)::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006386e8)
#6 facebook::react::Task::execute(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006e0e30)
#7 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad48)
#8 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db870)
#9 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db430)
#10 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd4a8)
#11 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b1b4)
#12 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e784)
#13 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x1003834d0)
#14 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x100384374)
#15 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x1003831fc)
#16 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#17 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Location is heap block of size 352 at 0x00010d109c00 allocated by thread T9:
#0 operator new(unsigned long) <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x7f71c)
#1 std::__1::shared_ptr<facebook::react::ShadowNodeFamily> std::__1::allocate_shared[abi:ne180100]<facebook::react::ShadowNodeFamily, std::__1::allocator<facebook::react::ShadowNodeFamily>, facebook::react::ShadowNodeFamilyFragment const&, std::__1::shared_ptr<facebook::react::BaseViewEventEmitter const>, std::__1::weak_ptr<facebook::react::EventDispatcher const> const&, facebook::react::ConcreteComponentDescriptor<facebook::react::ViewShadowNode> const&, void>(std::__1::allocator<facebook::react::ShadowNodeFamily> const&, facebook::react::ShadowNodeFamilyFragment const&, std::__1::shared_ptr<facebook::react::BaseViewEventEmitter const>&&, std::__1::weak_ptr<facebook::react::EventDispatcher const> const&, facebook::react::ConcreteComponentDescriptor<facebook::react::ViewShadowNode> const&) <null> (app:arm64+0x1005d5338)
#2 facebook::react::ConcreteComponentDescriptor<facebook::react::ViewShadowNode>::createFamily(facebook::react::ShadowNodeFamilyFragment const&) const <null> (app:arm64+0x1005d4a30)
#3 facebook::react::UIManager::createNode(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int, facebook::react::RawProps, std::__1::shared_ptr<facebook::react::InstanceHandle const>) const <null> (app:arm64+0x1004a2654)
#4 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_0, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_0>, 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&&) <null> (app:arm64+0x1004b02e4)
#5 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 <null> (hermes:arm64+0x13170)
#6 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db87c)
#7 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db430)
#8 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd4a8)
#9 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b1b4)
#10 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e784)
#11 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x1003834d0)
#12 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x100384374)
#13 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x1003831fc)
#14 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#15 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Mutex M0 (0x00010e119ad8) created at:
#0 pthread_mutex_lock <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x311c0)
#1 std::__1::mutex::lock() <null> (libc++.1.dylib:arm64+0x21178)
#2 reanimated::ReanimatedCommitHook::shadowTreeWillCommit(facebook::react::ShadowTree const&, std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, std::__1::shared_ptr<facebook::react::RootShadowNode> const&) <null> (app:arm64+0x100257ad4)
#3 facebook::react::UIManager::shadowTreeWillCommit(facebook::react::ShadowTree const&, std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, std::__1::shared_ptr<facebook::react::RootShadowNode> const&) const <null> (app:arm64+0x1004a5518)
#4 facebook::react::ShadowTree::tryCommit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fffc)
#5 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fd04)
#6 std::__1::__function::__func<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0, std::__1::allocator<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x1004a74a4)
#7 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x100494314)
#8 facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions) <null> (app:arm64+0x1004a3444)
#9 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9>, 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&&) <null> (app:arm64+0x1004b5c34)
#10 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 <null> (hermes:arm64+0x13170)
#11 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad48)
#12 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db870)
#13 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db430)
#14 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd4a8)
#15 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b1b4)
#16 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e784)
#17 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x1003834d0)
#18 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x100384374)
#19 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x1003831fc)
#20 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#21 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Thread T9 (tid=1900958, running) created by main thread at:
#0 pthread_create <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x3027c)
#1 -[NSThread startAndReturnError:] <null> (Foundation:arm64+0x7779b0)
#2 -[RCTJSThreadManager init] <null> (app:arm64+0x1006241c8)
#3 -[RCTInstance initWithDelegate:jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:moduleRegistry:parentInspectorTarget:launchOptions:] <null> (app:arm64+0x10061d6bc)
#4 -[RCTHost start] <null> (app:arm64+0x10061a93c)
#5 -[RCTRootViewFactory createReactHost:] <null> (app:arm64+0x1005450d0)
#6 -[RCTRootViewFactory createReactHostIfNeeded:] <null> (app:arm64+0x100544f08)
#7 -[RCTRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x100544038)
#8 -[EXReactRootViewFactory superViewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x100030068)
#9 Expo.ExpoAppDelegate.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView <null> (app:arm64+0x1000311e0)
#10 protocol witness for ExpoModulesCore.ReactNativeFactoryProvider.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView in conformance Expo.ExpoAppDelegate : ExpoModulesCore.ReactNativeFactoryProvider in Expo <null> (app:arm64+0x100036240)
#11 closure #3 () -> __C.UIView in implicit closure #1 () throws -> __C.UIView in ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159518)
#12 ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159128)
#13 @objc ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x1001596ac)
#14 -[EXReactRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x10002ff04)
#15 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:initialProperties:launchOptions:] <null> (app:arm64+0x100541238)
#16 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:launchOptions:] <null> (app:arm64+0x10054118c)
#17 app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x1000042a0)
#18 @objc app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x10000498c)
#19 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] <null> (UIKitCore:arm64+0xe1e4e8)
#20 <null> <null> (dyld:arm64+0x140c)
From looking at this, it seems that thread T9 is writing into family.nativeProps_DEPRECATED while reanimated is cloning the shadow tree, resulting in a data race inside ShadowNode::clone, which tries to read family.nativeProps_DEPRECATED at the same time (in its if check and the componentDescriptor.cloneProps call).
The former seems to be triggered by a JS call to setNativeProps, but we're not making any such calls from our code, so it's most likely coming from a third party library. I'll see if I can make a repro with this in mind.
After some further investigation, the call to setNativeProps seems to come from react-native itself, and more specifically node_modules/react-native/src/private/animated/createAnimatedPropsHook.js. No luck creating a repro yet...
TSan reports two additional data races:
==================
WARNING: ThreadSanitizer: data race (pid=80367)
Write of size 8 at 0x000125611330 by thread T11 (mutexes: write M0):
#0 std::__1::shared_ptr<facebook::react::CallInvoker>::operator=[abi:ne180100](std::__1::shared_ptr<facebook::react::CallInvoker> const&) <null> (app:arm64+0x1000b539c)
#1 facebook::react::ShadowNode::updateRuntimeShadowNodeReference(std::__1::shared_ptr<facebook::react::ShadowNode const> const&) const <null> (app:arm64+0x10048d20c)
#2 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc35c)
#3 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#4 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#5 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#6 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#7 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#8 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#9 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#10 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#11 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#12 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#13 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#14 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#15 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#16 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#17 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#18 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#19 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#20 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#21 facebook::react::ShadowTree::tryCommit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10049013c)
#22 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fcb0)
#23 std::__1::__function::__func<facebook::react::UIManager::setNativeProps_DEPRECATED(std::__1::shared_ptr<facebook::react::ShadowNode const> const&, facebook::react::RawProps) const::$_0, std::__1::allocator<facebook::react::UIManager::setNativeProps_DEPRECATED(std::__1::shared_ptr<facebook::react::ShadowNode const> const&, facebook::react::RawProps) const::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x1004a9930)
#24 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x1004942c0)
#25 facebook::react::UIManager::setNativeProps_DEPRECATED(std::__1::shared_ptr<facebook::react::ShadowNode const> const&, facebook::react::RawProps) const <null> (app:arm64+0x1004a4958)
#26 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_13, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_13>, 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&&) <null> (app:arm64+0x1004b77ac)
#27 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 <null> (hermes:arm64+0x13170)
#28 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 <null> (hermes:arm64+0x13170)
#29 std::__1::__function::__func<facebook::react::TimerManager::callTimer(int)::$_0, std::__1::allocator<facebook::react::TimerManager::callTimer(int)::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006386d0)
#30 facebook::react::Task::execute(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006e0e18)
#31 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#32 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#33 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#34 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#35 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#36 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#37 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#38 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#39 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#40 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#41 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Previous read of size 8 at 0x000125611330 by main thread (mutexes: write M1):
#0 reanimated::ReanimatedModuleProxy::updateProps(facebook::jsi::Runtime&, facebook::jsi::Value const&) <null> (app:arm64+0x1002641ec)
#1 std::__1::__function::__func<reanimated::ReanimatedModuleProxy::init(reanimated::PlatformDepMethodsHolder const&)::$_2, std::__1::allocator<reanimated::ReanimatedModuleProxy::init(reanimated::PlatformDepMethodsHolder const&)::$_2>, void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&) <null> (app:arm64+0x10026a208)
#2 facebook::jsi::Value std::__1::__invoke_void_return_wrapper<facebook::jsi::Value, false>::__call[abi:ne180100]<std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)> worklets::jsi_utils::createHostFunction<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>>(std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long>(std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)> worklets::jsi_utils::createHostFunction<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>>(std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)&, facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*&&, unsigned long&&) <null> (app:arm64+0x10028bd10)
#3 std::__1::__function::__func<std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)> worklets::jsi_utils::createHostFunction<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>>(std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long), std::__1::allocator<std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)> worklets::jsi_utils::createHostFunction<std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>>(std::__1::function<void (facebook::jsi::Runtime&, facebook::jsi::Value const&)>)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>, 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&&) <null> (app:arm64+0x10028bb14)
#4 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 <null> (app:arm64+0x1000e18a0)
#5 std::__1::__function::__func<facebook::jsi::DecoratedHostFunction, std::__1::allocator<facebook::jsi::DecoratedHostFunction>, 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&&) <null> (app:arm64+0x10025d3fc)
#6 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 <null> (app:arm64+0x1000e18a0)
#7 std::__1::__function::__func<facebook::jsi::DecoratedHostFunction, std::__1::allocator<facebook::jsi::DecoratedHostFunction>, 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&&) <null> (app:arm64+0x10025d3fc)
#8 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 <null> (hermes:arm64+0x13170)
#9 facebook::jsi::WithRuntimeDecorator<worklets::AroundLock, facebook::jsi::Runtime, facebook::jsi::Runtime>::call(facebook::jsi::Function const&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) <null> (app:arm64+0x1002959e0)
#10 facebook::jsi::Value worklets::runOnRuntimeGuarded<facebook::jsi::Value&>(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value&) <null> (app:arm64+0x100262ab0)
#11 reanimated::ReanimatedModuleProxy::onRender(double) <null> (app:arm64+0x100262990)
#12 std::__1::__function::__func<reanimated::ReanimatedModuleProxy::init(reanimated::PlatformDepMethodsHolder const&)::$_0, std::__1::allocator<reanimated::ReanimatedModuleProxy::init(reanimated::PlatformDepMethodsHolder const&)::$_0>, void (double)>::operator()(double&&) <null> (app:arm64+0x100268a04)
#13 invocation function for block in reanimated::makeRequestRender(REANodesManager*)::$_0::operator()(std::__1::function<void (double)>) const <null> (app:arm64+0x10024c208)
#14 -[REANodesManager onAnimationFrame:] <null> (app:arm64+0x100274998)
#15 CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) <null> (QuartzCore:arm64+0x17a6c)
#16 <null> <null> (dyld:arm64+0x140c)
Location is heap block of size 48 at 0x000125611310 allocated by thread T11:
#0 operator new(unsigned long) <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x7f71c)
#1 facebook::react::valueFromShadowNode(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::ShadowNode const>, bool) <null> (app:arm64+0x1004b0ae8)
#2 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_0, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_0>, 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&&) <null> (app:arm64+0x1004b0300)
#3 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 <null> (hermes:arm64+0x13170)
#4 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db864)
#5 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#6 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#7 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#8 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#9 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#10 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#11 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#12 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#13 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Mutex M0 (0x000102e05f90) created at:
#0 pthread_mutex_lock <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x311c0)
#1 std::__1::mutex::lock() <null> (libc++.1.dylib:arm64+0x21178)
#2 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fcb0)
#3 std::__1::__function::__func<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0, std::__1::allocator<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x1004a748c)
#4 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x1004942c0)
#5 facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions) <null> (app:arm64+0x1004a3414)
#6 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9>, 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&&) <null> (app:arm64+0x1004b5c1c)
#7 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 <null> (hermes:arm64+0x13170)
#8 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#9 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#10 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#11 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#12 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#13 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#14 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#15 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#16 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#17 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#18 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Mutex M1 (0x00010be3c5b8) created at:
#0 pthread_mutex_init <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x31030)
#1 std::__1::recursive_mutex::recursive_mutex() <null> (libc++.1.dylib:arm64+0x21214)
#2 std::__1::shared_ptr<std::__1::recursive_mutex> std::__1::allocate_shared[abi:ne180100]<std::__1::recursive_mutex, std::__1::allocator<std::__1::recursive_mutex>, void>(std::__1::allocator<std::__1::recursive_mutex> const&) <null> (app:arm64+0x100296cc8)
#3 worklets::WorkletRuntime::WorkletRuntime(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread> const&, std::__1::shared_ptr<worklets::JSScheduler> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) <null> (app:arm64+0x100290c10)
#4 worklets::WorkletRuntime::WorkletRuntime(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread> const&, std::__1::shared_ptr<worklets::JSScheduler> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) <null> (app:arm64+0x100291240)
#5 worklets::WorkletRuntime* std::__1::construct_at[abi:ne180100]<worklets::WorkletRuntime, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<worklets::JSScheduler>, char const (&) [22], bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, worklets::WorkletRuntime*>(worklets::WorkletRuntime*, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>&&, std::__1::shared_ptr<worklets::JSScheduler>&&, char const (&) [22], bool&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) <null> (app:arm64+0x100267bdc)
#6 std::__1::__shared_ptr_emplace<worklets::WorkletRuntime, std::__1::allocator<worklets::WorkletRuntime>>::__shared_ptr_emplace[abi:ne180100]<facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<worklets::JSScheduler>, char const (&) [22], bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::allocator<worklets::WorkletRuntime>, 0>(std::__1::allocator<worklets::WorkletRuntime>, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>&&, std::__1::shared_ptr<worklets::JSScheduler>&&, char const (&) [22], bool&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) <null> (app:arm64+0x100267a1c)
#7 std::__1::shared_ptr<worklets::WorkletRuntime> std::__1::allocate_shared[abi:ne180100]<worklets::WorkletRuntime, std::__1::allocator<worklets::WorkletRuntime>, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>, std::__1::shared_ptr<worklets::JSScheduler>, char const (&) [22], bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, void>(std::__1::allocator<worklets::WorkletRuntime> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::MessageQueueThread>&&, std::__1::shared_ptr<worklets::JSScheduler>&&, char const (&) [22], bool&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) <null> (app:arm64+0x100267930)
#8 reanimated::ReanimatedModuleProxy::ReanimatedModuleProxy(std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder const&, bool, bool) <null> (app:arm64+0x10025d754)
#9 reanimated::ReanimatedModuleProxy::ReanimatedModuleProxy(std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder const&, bool, bool) <null> (app:arm64+0x10025deac)
#10 std::__1::__shared_ptr_emplace<reanimated::ReanimatedModuleProxy, std::__1::allocator<reanimated::ReanimatedModuleProxy>>::__shared_ptr_emplace[abi:ne180100]<std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder&, bool&, bool, std::__1::allocator<reanimated::ReanimatedModuleProxy>, 0>(std::__1::allocator<reanimated::ReanimatedModuleProxy>, std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder&, bool&, bool&&) <null> (app:arm64+0x10024a848)
#11 std::__1::shared_ptr<reanimated::ReanimatedModuleProxy> std::__1::allocate_shared[abi:ne180100]<reanimated::ReanimatedModuleProxy, std::__1::allocator<reanimated::ReanimatedModuleProxy>, std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder&, bool&, bool, void>(std::__1::allocator<reanimated::ReanimatedModuleProxy> const&, std::__1::shared_ptr<worklets::WorkletsModuleProxy> const&, facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::CallInvoker> const&, reanimated::PlatformDepMethodsHolder&, bool&, bool&&) <null> (app:arm64+0x10024a744)
#12 reanimated::createReanimatedModule(REAModule*, RCTBridge*, std::__1::shared_ptr<facebook::react::CallInvoker> const&, WorkletsModule*, bool) <null> (app:arm64+0x1002495b4)
#13 -[REAModule installTurboModule] <null> (app:arm64+0x100255ca0)
#14 __invoking___ <null> (CoreFoundation:arm64+0x132cbc)
#15 std::__1::__function::__func<facebook::react::ObjCTurboModule::performMethodInvocation(facebook::jsi::Runtime&, bool, char const*, NSInvocation*, NSMutableArray*)::$_0, std::__1::allocator<facebook::react::ObjCTurboModule::performMethodInvocation(facebook::jsi::Runtime&, bool, char const*, NSInvocation*, NSMutableArray*)::$_0>, void ()>::operator()() <null> (app:arm64+0x10051ec4c)
#16 (anonymous namespace)::ModuleNativeMethodCallInvoker::invokeSync(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::function<void ()>&&) <null> (app:arm64+0x1005262e0)
#17 facebook::react::ObjCTurboModule::performMethodInvocation(facebook::jsi::Runtime&, bool, char const*, NSInvocation*, NSMutableArray*) <null> (app:arm64+0x100517714)
#18 facebook::react::ObjCTurboModule::invokeObjCMethod(facebook::jsi::Runtime&, facebook::react::TurboModuleMethodValueKind, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, objc_selector*, facebook::jsi::Value const*, unsigned long) <null> (app:arm64+0x10051a66c)
#19 facebook::react::__hostFunction_NativeReanimatedModuleSpecJSI_installTurboModule(facebook::jsi::Runtime&, facebook::react::TurboModule&, facebook::jsi::Value const*, unsigned long) <null> (app:arm64+0x100707fa0)
#20 std::__1::__function::__func<facebook::react::TurboModule::create(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long), std::__1::allocator<facebook::react::TurboModule::create(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::'lambda'(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>, 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&&) <null> (app:arm64+0x100267690)
#21 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 <null> (hermes:arm64+0x13170)
#22 std::__1::__function::__func<facebook::react::UIManager::startSurface(std::__1::unique_ptr<facebook::react::ShadowTree, std::__1::default_delete<facebook::react::ShadowTree>>&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, folly::dynamic const&, facebook::react::DisplayMode) const::$_0, std::__1::allocator<facebook::react::UIManager::startSurface(std::__1::unique_ptr<facebook::react::ShadowTree, std::__1::default_delete<facebook::react::ShadowTree>>&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, folly::dynamic const&, facebook::react::DisplayMode) const::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1004a7d54)
#23 facebook::react::Task::execute(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006e0e18)
#24 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#25 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#26 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#27 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#28 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#29 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#30 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#31 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#32 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#33 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#34 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Thread T11 (tid=1781947, running) created by main thread at:
#0 pthread_create <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x3027c)
#1 -[NSThread startAndReturnError:] <null> (Foundation:arm64+0x7779b0)
#2 -[RCTJSThreadManager init] <null> (app:arm64+0x1006241b0)
#3 -[RCTInstance initWithDelegate:jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:moduleRegistry:parentInspectorTarget:launchOptions:] <null> (app:arm64+0x10061d6a4)
#4 -[RCTHost start] <null> (app:arm64+0x10061a924)
#5 -[RCTRootViewFactory createReactHost:] <null> (app:arm64+0x1005450b8)
#6 -[RCTRootViewFactory createReactHostIfNeeded:] <null> (app:arm64+0x100544ef0)
#7 -[RCTRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x100544020)
#8 -[EXReactRootViewFactory superViewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x10002ffa8)
#9 Expo.ExpoAppDelegate.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView <null> (app:arm64+0x100031120)
#10 protocol witness for ExpoModulesCore.ReactNativeFactoryProvider.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView in conformance Expo.ExpoAppDelegate : ExpoModulesCore.ReactNativeFactoryProvider in Expo <null> (app:arm64+0x100036180)
#11 closure #3 () -> __C.UIView in implicit closure #1 () throws -> __C.UIView in ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159458)
#12 ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159068)
#13 @objc ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x1001595ec)
#14 -[EXReactRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x10002fe44)
#15 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:initialProperties:launchOptions:] <null> (app:arm64+0x100541220)
#16 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:launchOptions:] <null> (app:arm64+0x100541174)
#17 app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x1000041e0)
#18 @objc app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x1000048cc)
#19 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] <null> (UIKitCore:arm64+0xe1e4e8)
#20 <null> <null> (dyld:arm64+0x140c)
WARNING: ThreadSanitizer: data race (pid=80367)
Read of size 8 at 0x000112e08540 by thread T11:
#0 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_3, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_3>, 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&&) <null> (app:arm64+0x1004b2468)
#1 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 <null> (hermes:arm64+0x13170)
#2 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#3 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#4 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#5 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#6 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#7 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#8 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#9 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#10 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#11 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#12 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Previous write of size 8 at 0x000112e08540 by main thread (mutexes: write M0):
#0 std::__1::shared_ptr<facebook::react::CallInvoker>::operator=[abi:ne180100](std::__1::shared_ptr<facebook::react::CallInvoker> const&) <null> (app:arm64+0x1000b539c)
#1 facebook::react::ShadowNode::updateRuntimeShadowNodeReference(std::__1::shared_ptr<facebook::react::ShadowNode const> const&) const <null> (app:arm64+0x10048d20c)
#2 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc35c)
#3 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#4 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#5 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#6 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#7 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#8 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#9 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#10 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#11 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#12 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#13 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#14 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#15 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#16 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#17 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#18 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#19 facebook::react::updateMountedFlag(std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&, std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>> const&) <null> (app:arm64+0x1004bc38c)
#20 facebook::react::ShadowTree::tryCommit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10049013c)
#21 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fcb0)
#22 std::__1::__function::__func<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0, std::__1::allocator<reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double)::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x1002715c8)
#23 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x1004942c0)
#24 reanimated::ReanimatedMountHook::shadowTreeDidMount(std::__1::shared_ptr<facebook::react::RootShadowNode const> const&, double) <null> (app:arm64+0x100271324)
#25 facebook::react::UIManager::reportMount(int) const <null> (app:arm64+0x1004a5804)
#26 facebook::react::Scheduler::reportMount(int) const <null> (app:arm64+0x10048255c)
#27 -[RCTScheduler reportMount:] <null> (app:arm64+0x10059e4c8)
#28 __69-[RCTSurfacePresenter mountingManager:didMountComponentsWithRootTag:]_block_invoke <null> (app:arm64+0x1005aeb84)
#29 __tsan::invoke_and_release_block(void*) <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x7bccc)
#30 _dispatch_client_callout <null> (libdispatch.dylib:arm64+0x67b4)
#31 <null> <null> (dyld:arm64+0x140c)
Location is heap block of size 48 at 0x000112e08520 allocated by thread T11:
#0 operator new(unsigned long) <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x7f71c)
#1 facebook::react::valueFromShadowNode(facebook::jsi::Runtime&, std::__1::shared_ptr<facebook::react::ShadowNode const>, bool) <null> (app:arm64+0x1004b0ae8)
#2 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_3, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_3>, 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&&) <null> (app:arm64+0x1004b25dc)
#3 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 <null> (hermes:arm64+0x13170)
#4 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#5 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#6 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#7 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#8 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#9 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#10 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#11 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#12 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#13 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#14 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Mutex M0 (0x000102e05f90) created at:
#0 pthread_mutex_lock <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x311c0)
#1 std::__1::mutex::lock() <null> (libc++.1.dylib:arm64+0x21178)
#2 facebook::react::ShadowTree::commit(std::__1::function<std::__1::shared_ptr<facebook::react::RootShadowNode> (facebook::react::RootShadowNode const&)> const&, facebook::react::ShadowTree::CommitOptions const&) const <null> (app:arm64+0x10048fcb0)
#3 std::__1::__function::__func<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0, std::__1::allocator<facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions)::$_0>, void (facebook::react::ShadowTree const&)>::operator()(facebook::react::ShadowTree const&) <null> (app:arm64+0x1004a748c)
#4 facebook::react::ShadowTreeRegistry::visit(int, std::__1::function<void (facebook::react::ShadowTree const&)> const&) const <null> (app:arm64+0x1004942c0)
#5 facebook::react::UIManager::completeSurface(int, std::__1::shared_ptr<std::__1::vector<std::__1::shared_ptr<facebook::react::ShadowNode const>, std::__1::allocator<std::__1::shared_ptr<facebook::react::ShadowNode const>>>> const&, facebook::react::ShadowTree::CommitOptions) <null> (app:arm64+0x1004a3414)
#6 std::__1::__function::__func<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9, std::__1::allocator<facebook::react::UIManagerBinding::get(facebook::jsi::Runtime&, facebook::jsi::PropNameID const&)::$_9>, 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&&) <null> (app:arm64+0x1004b5c1c)
#7 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 <null> (hermes:arm64+0x13170)
#8 facebook::react::RuntimeScheduler_Modern::executeTask(facebook::jsi::Runtime&, facebook::react::Task&, bool) const <null> (app:arm64+0x1006dad30)
#9 facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&, std::__1::chrono::time_point<std::__1::chrono::steady_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) <null> (app:arm64+0x1006db858)
#10 facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&, bool) <null> (app:arm64+0x1006db418)
#11 std::__1::__function::__func<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0, std::__1::allocator<facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0>, void (facebook::jsi::Runtime&)>::operator()(facebook::jsi::Runtime&) <null> (app:arm64+0x1006dd490)
#12 _ZNSt3__110__function6__funcIZZN8facebook5react13ReactInstanceC1ENS_10unique_ptrINS3_9JSRuntimeENS_14default_deleteIS6_EEEENS_10shared_ptrINS3_18MessageQueueThreadEEENSA_INS3_12TimerManagerEEENS_8functionIFvRNS2_3jsi7RuntimeERKNS3_14JsErrorHandler14ProcessedErrorEEEEPNS3_18jsinspector_modern10HostTargetEENK3$_0clINSF_IFvSI_EEEEEDaT_EUlvE_NS_9allocatorISY_EEFvvEEclEv <null> (app:arm64+0x10062b19c)
#13 facebook::react::tryAndReturnError(std::__1::function<void ()> const&) <null> (app:arm64+0x10036e6c4)
#14 facebook::react::RCTMessageThread::tryFunc(std::__1::function<void ()> const&) <null> (app:arm64+0x100383410)
#15 std::__1::__function::__func<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0, std::__1::allocator<facebook::react::RCTMessageThread::runOnQueue(std::__1::function<void ()>&&)::$_0>, void ()>::operator()() <null> (app:arm64+0x1003842b4)
#16 invocation function for block in facebook::react::RCTMessageThread::runAsync(std::__1::function<void ()>) <null> (app:arm64+0x10038313c)
#17 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ <null> (CoreFoundation:arm64+0x900e8)
#18 __NSThread__start__ <null> (Foundation:arm64+0x777d68)
Thread T11 (tid=1781947, running) created by main thread at:
#0 pthread_create <null> (libclang_rt.tsan_iossim_dynamic.dylib:arm64+0x3027c)
#1 -[NSThread startAndReturnError:] <null> (Foundation:arm64+0x7779b0)
#2 -[RCTJSThreadManager init] <null> (app:arm64+0x1006241b0)
#3 -[RCTInstance initWithDelegate:jsRuntimeFactory:bundleManager:turboModuleManagerDelegate:moduleRegistry:parentInspectorTarget:launchOptions:] <null> (app:arm64+0x10061d6a4)
#4 -[RCTHost start] <null> (app:arm64+0x10061a924)
#5 -[RCTRootViewFactory createReactHost:] <null> (app:arm64+0x1005450b8)
#6 -[RCTRootViewFactory createReactHostIfNeeded:] <null> (app:arm64+0x100544ef0)
#7 -[RCTRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x100544020)
#8 -[EXReactRootViewFactory superViewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x10002ffa8)
#9 Expo.ExpoAppDelegate.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView <null> (app:arm64+0x100031120)
#10 protocol witness for ExpoModulesCore.ReactNativeFactoryProvider.recreateRootView(withBundleURL: Swift.Optional<Foundation.URL>, moduleName: Swift.Optional<Swift.String>, initialProps: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>) -> __C.UIView in conformance Expo.ExpoAppDelegate : ExpoModulesCore.ReactNativeFactoryProvider in Expo <null> (app:arm64+0x100036180)
#11 closure #3 () -> __C.UIView in implicit closure #1 () throws -> __C.UIView in ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159458)
#12 ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x100159068)
#13 @objc ExpoModulesCore.ExpoReactDelegate.createReactRootView(moduleName: Swift.String, initialProperties: Swift.Optional<Swift.Dictionary<Swift.AnyHashable, Any>>, launchOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> __C.UIView <null> (app:arm64+0x1001595ec)
#14 -[EXReactRootViewFactory viewWithModuleName:initialProperties:launchOptions:] <null> (app:arm64+0x10002fe44)
#15 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:initialProperties:launchOptions:] <null> (app:arm64+0x100541220)
#16 -[RCTReactNativeFactory startReactNativeWithModuleName:inWindow:launchOptions:] <null> (app:arm64+0x100541174)
#17 app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x1000041e0)
#18 @objc app.AppDelegate.application(_: __C.UIApplication, didFinishLaunchingWithOptions: Swift.Optional<Swift.Dictionary<__C.UIApplicationLaunchOptionsKey, Any>>) -> Swift.Bool <null> (app:arm64+0x1000048cc)
#19 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] <null> (UIKitCore:arm64+0xe1e4e8)
#20 <null> <null> (dyld:arm64+0x140c)
Both of them seem related to something trying to access a shadow node using shadowNodeFromValue while updateRuntimeShadowNodeReference is called from another thread, which in turn replaces the shadowNode pointer shadowNodeFromValue reads. I'm guessing this shouldn't be an issue, since shadowNode is a shared pointer, so any reference counting should be done atomically, which should mitigate the risk of trying to read it while it's being destroyed.
For now, due to lack of a better options, we've applied the following patch to react-native, hoping it improves the situation. We'll monitor and I'll post an update here. Keep in mind this patch is for RN 0.79.2, so it might not directly apply to newer versions.
@OrfeasZ I have the same issue on 0.79.5. Can this patch apply on 0.79.5 as well? Thanks
We haven't seen any additional crashes since this patch was deployed, so it seems to be working. Not sure what next steps for this would be? Try to upstream on the react-native side?
@OrfeasZ I have the same issue on 0.79.5. Can this patch apply on 0.79.5 as well? Thanks
You can try but ymmv.
After over a month in production with this patch, I can now confirm that this crash no longer occurs. However, the react-native team has not even looked at the PR. Maybe someone from the software mansion can raise it to them? Especially now with react-native switching to pre-built binaries for iOS, this will be more relevant to get into upstream sooner than later.
After over a month in production with this patch, I can now confirm that this crash no longer occurs. However, the react-native team has not even looked at the PR. Maybe someone from the software mansion can raise it to them? Especially now with react-native switching to pre-built binaries for iOS, this will be more relevant to get into upstream sooner than later.
@OrfeasZ i'll try and give a feedback :D thank you for your effort
Hey @OrfeasZ 👋 Thanks for your commitment! We'll try to ping the right folks from Meta and see if it's possible to move this forward.
Thank you @OrfeasZ and @piaskowyk!
I have been monitoring it for a while, and I'm also seeing this happening in the latest version of React Native and Reanimated
Versions
"react": "19.1.0",
"react-native": "0.81.4",
"react-native-reanimated": "~4.1.0"
I can share the full stack trace if it helps somehow
Thank you @OrfeasZ and @piaskowyk!
I have been monitoring it for a while, and I'm also seeing this happening in the latest version of React Native and Reanimated
Is this with or without the patch I've shared above?
Is this with or without the patch I've shared above?
without the patch
Thank you @OrfeasZ and @piaskowyk!
I have been monitoring it for a while, and I'm also seeing this happening in the latest version of React Native and Reanimated
## Versions "react": "19.1.0", "react-native": "0.81.4", "react-native-reanimated": "~4.1.0" I can share the full stack trace if it helps somehow
I am experiencing the same issue, and I can see it in Firebase Crashlytics.
"react": "19.1.0", "react-native": "0.80.0", "react-native-reanimated": "~3.19.0"
Thank you @OrfeasZ and @piaskowyk! I have been monitoring it for a while, and I'm also seeing this happening in the latest version of React Native and Reanimated
Versions
"react": "19.1.0", "react-native": "0.81.4", "react-native-reanimated": "~4.1.0"I can share the full stack trace if it helps somehow
I am experiencing the same issue, and I can see it in Firebase Crashlytics.
"react": "19.1.0", "react-native": "0.80.0", "react-native-reanimated": "~3.19.0"
@hatn-lumin you should try to patch following the patch of @OrfeasZ manually in your RN 0.80.0
I was just running TSAN in my build and I also see this behavior. Will try the patch
Patch worked for me. Thanks @OrfeasZ
No action from meta. Issue is still present.
"react-native": "0.81.5"
Still happening for me too with reanimated v4 and RN 0.81.x. Terrible.
## Versions
"react": "19.1.0",
"react-native": "0.81.4",
"react-native-reanimated": "~4.1.0"
I can share the full stack trace if it helps somehow