enable android focus race flag

Fixes APP-T4H9
This commit is contained in:
Samuel Newman
2026-09-02 18:19:05 +03:00
parent 7d39aa3422
commit 06226ef90d
3 changed files with 344 additions and 368 deletions
+6 -5
View File
@@ -16,16 +16,17 @@ experimental React Native flags.
**TODO: Remove after upgrading to a React Native release that closes the
queued Scheduler delegate lifetime race by default.**
## UIManager.cpp Patch - Fabric focus navigation use-after-free
## Fabric focus navigation - Android use-after-free
Fixes Sentry issue APP-T4H9: a SIGSEGV in
`FabricUIManagerBinding::findNextFocusableElement` during focus navigation.
React Native 0.86 contains the safe implementation behind
`fixFindShadowNodeByTagRaceCondition`, but the public default is false. The
fallback captures a raw root shadow-node pointer in `tryCommit` and dereferences
it after the lock is released, allowing a concurrent commit or surface stop to
free the node first. This backports the final upstream implementation, which
`fixFindShadowNodeByTagRaceCondition`, but the Android stable default is false.
The fallback captures a raw root shadow-node pointer in `tryCommit` and
dereferences it after the lock is released, allowing a concurrent commit or
surface stop to free the node first. Override only this flag in
`ReactNativeFeatureFlagsOverrides_RNOSS_Stable_Android` so the guarded path
holds the current revision's `shared_ptr` for the entire traversal.
**TODO: Remove after bumping React Native to a release containing