iOS Simulator: SIGSEGV in -[RiveFactory decodeImage:] when a RiveView with referenced image assets mounts again after the last RiveView unmounted
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 43/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- ios, typescript
- 领域
- mobile
调研方向
Start by tracing RiveReactNativeView.processAssetBytes, RiveFactory.decodeImage:, and RenderContextManager to understand how render contexts are retained across view unmounts. Reproduce the issue with the reported two-asset mount and unmount sequence in the iOS Simulator. Done when repeated remounts no longer crash while processing referenced image assets.
由索引模型根据 Issue 内容生成。
描述
Versions: rive-react-native 9.8.6 (RiveRuntime 6.24.0), React Native 0.87, iOS Simulator on an Apple-silicon Mac. Not reproduced on a physical iPhone.
What happens: the app crashes natively (SIGSEGV) in -[RiveFactory decodeImage:], called from RiveReactNativeView.processAssetBytes, when a RiveView that supplies images through referencedAssets mounts again after every RiveView had been unmounted. The first mount always works.
Steps
- Render a
RiveViewfor a .riv with two referenced image assets, supplied as URLs viareferencedAssets. - Unmount it so no
RiveViewis alive. - Mount a new
RiveViewfor the same file and assets. - The app crashes while the asset bytes are processed. Intermittent: 4 of 5 automated runs.
What we think happens: RenderContextManager keeps its render contexts weakly ("when no more RiveRenderViews require these, they can be freed"), and RiveFactory holds a raw rive::Factory*. After the last view unmounts the context is freed, and decoding assets for the new view dereferences it.
Tried: decoding on the main thread (same crash, now on the main thread); dropping stale loads with a generation token (still crashes); holding a RiveFile reference (not reliable). RenderContextManager.shared().newDefaultContext() isn't callable from Swift because RenderContext is only forward-declared.
- 主要语言
- TypeScript
- 星标
- 789
- 派生
- 81
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
rive-app/rive-react-native 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
rive-app/rive-react-native#450 ·
-
难度 2/5 1-3 小时 新手友好度 74/100
rive-app/rive-react-native#431 · 2 条评论 ·
-
难度 4/5 3-5 天 新手友好度 35/100
rive-app/rive-react-native#448 · 2 条评论 · 1 个 reaction ·
-
[Android] Rive events dispatched off the UI thread can deadlock with Reanimated under Fabric (ANR)可能已有人在做 @Togetic 于 69 天前认领。 未关闭
难度 3/5 1-2 天 新手友好度 68/100
rive-app/rive-react-native#444 ·
-
难度 4/5 3-5 天 新手友好度 45/100
rive-app/rive-react-native#441 ·
查看 rive-app/rive-react-native 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 76/100
WalletConnect/walletconnect-monorepo#7392 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
-
fehler
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
Azure/azure-functions-nodejs-extensions#180 ·
维护者通常 1 天内回复
-
bug good first issue help wanted
难度 2/5 1-3 小时 新手友好度 88/100
laaielichter/Threesmith#28 ·
维护者通常 1 天内回复