-
Notifications
You must be signed in to change notification settings - Fork 25.1k
Open
Labels
Description
Description
In the attached repro, I have a button that mounts and unmounts a large number of components. Based on my observations, ShadowNodeFamily may not be deallocated correctly.
When repeatedly toggling the content, I notice in the Debug Memory Graph in Xcode that the number of ShadowNodeFamily instances keeps increasing. Additionally, when I click "Collect garbage" in the Memory tab of RN DevTools, the number of instances does not decrease.
This suggests that the objects might still be retained somewhere.
Steps to reproduce
- Press a button that mounts a large subtree of components.
- Press the button again to unmount the subtree.
- Repeat that multiple times.
- Observe the
Debug Memory GraphinXcode.
React Native Version
0.84.1
Affected Platforms
Runtime - iOS
Output of npx @react-native-community/cli info
System:
OS: macOS 26.3
CPU: (10) arm64 Apple M2 Pro
Memory: 100.70 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 24.3.0
path: /opt/homebrew/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 11.4.2
path: /opt/homebrew/bin/npm
Watchman:
version: 2025.09.15.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods:
version: 1.16.2
path: /opt/homebrew/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 25.2
- iOS 26.2
- macOS 26.2
- tvOS 26.2
- visionOS 26.2
- watchOS 26.2
Android SDK:
API Levels:
- "33"
- "34"
- "35"
- "36"
Build Tools:
- 29.0.2
- 33.0.1
- 34.0.0
- 35.0.0
- 36.0.0
- 36.1.0
- 36.1.0
System Images:
- android-25 | Google APIs ARM 64 v8a
- android-27 | Google APIs ARM 64 v8a
- android-28 | Google APIs ARM 64 v8a
- android-29 | Google APIs ARM 64 v8a
- android-31 | Google APIs ARM 64 v8a
- android-33 | Google APIs ARM 64 v8a
- android-34 | Google Play ARM 64 v8a
- android-36 | Android TV ARM 64 v8a
- android-36 | Google Play ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2025.1 AI-251.26094.121.2512.13840223
Xcode:
version: 26.3/17C529
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.15
path: /usr/bin/javac
Ruby:
version: 3.4.2
path: /Users/tomaszboron/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli":
installed: 20.1.0
wanted: 20.1.0
react:
installed: 19.2.3
wanted: 19.2.3
react-native:
installed: 0.84.1
wanted: 0.84.1
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
N/A
MANDATORY Reproducer
https://github.com/t0maboro/ShadowNodeFamilyRepro#
Screenshots and Videos
after a few toggles:
after some more toggles:

Reactions are currently unavailable