Closed
Description
Old Version
0.72.11
New Version
0.73.6
Description
I'm not sure this belongs here. If not, feel free to move or close it.
In 0.72.11 #40859 was included. When trying to upgrade to 0.73.6 I started getting crashes.
I investigated and it seems that it hasn't been included in 0.73.6.
But it seems to be included in 0.74.0.
Would it be possible to make a 0.73 release that includes this fix?
Steps to reproduce
- Have a FlatList that with custom
CellRendererComponent
that useszIndex
as well asmaintainVisibleContentPosition
. - Try to add an element to the data array
- See that it crashes on Android (in 0.73.6, but not in 0.72.11)
The reproducer crashes with both expo 49 and 50, since 49 uses RN 0.72.10 and 50 uses 0.73.6
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
OS: macOS 14.1.2
CPU: (10) arm64 Apple M2 Pro
Memory: 105.28 MB / 16.00 GB
Shell:
version: 3.6.0
path: /opt/homebrew/bin/fish
Binaries:
Node:
version: 21.1.0
path: ~/.local/share/nvm/v21.1.0/bin/node
Yarn: Not Found
npm:
version: 10.2.0
path: ~/.local/share/nvm/v21.1.0/bin/npm
Watchman: Not Found
Managers:
CocoaPods:
version: 1.15.2
path: /Users/jacobmolby/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.0
- iOS 17.0
- macOS 14.0
- tvOS 17.0
- watchOS 10.0
Android SDK: Not Found
IDEs:
Android Studio: 2023.2 AI-232.10227.8.2321.11479570
Xcode:
version: 15.0.1/15A507
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.10
path: /usr/bin/javac
Ruby:
version: 2.7.5
path: /Users/jacobmolby/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.73.6
wanted: 0.73.6
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false
Stacktrace or Logs
FATAL EXCEPTION: main
Process: host.exp.exponent, PID: 20107
java.lang.ArrayIndexOutOfBoundsException: length=37; index=37
at abi49_0_0.com.facebook.react.uimanager.ViewGroupDrawingOrderHelper.getChildDrawingOrder(SourceFile:61)
at abi49_0_0.com.facebook.react.views.view.ReactViewGroup.getChildDrawingOrder(SourceFile:14)
at android.view.ViewGroup.getAndVerifyPreorderedIndex(ViewGroup.java:2120)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4530)
at abi49_0_0.com.facebook.react.views.view.ReactViewGroup.dispatchDraw(SourceFile:4)
at android.view.View.updateDisplayListIfDirty(View.java:23993)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.View.draw(View.java:24878)
at android.view.ViewGroup.drawChild(ViewGroup.java:4776)
at abi49_0_0.com.facebook.react.views.view.ReactViewGroup.drawChild(SourceFile:20)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:4534)
at abi49_0_0.com.facebook.react.views.view.ReactViewGroup.dispatchDraw(SourceFile:4)
at android.view.View.updateDisplayListIfDirty(View.java:23993)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ViewGroup.recreateChildDisplayList(ViewGroup.java:4760)
at android.view.ViewGroup.dispatchGetDisplayList(ViewGroup.java:4732)
at android.view.View.updateDisplayListIfDirty(View.java:23953)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:764)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:770)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:868)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:5945)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:5614)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4734)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3239)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11197)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1650)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1659)
at android.view.Choreographer.doCallbacks(Choreographer.java:1129)
at android.view.Choreographer.doFrame(Choreographer.java:1055)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1622)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8893)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Reproducer
https://snack.expo.dev/@jacobmolby/zindex-flatlist-android-crash
Screenshots and Videos
No response